c# - 如何将 vc++(例如:IListPtr)指针转换为 std::list?

标签 c# c++ visual-c++ com

任何人都可以帮助我将接口(interface)指针转换为 vc++ 中的列表变量,因为我在类型转换时遇到错误

error 2440 "type cast" :cannot convert from '_bstr_t' to 'std::list<_Ty>'

编辑:我是这样做的:

C#

List<string> Disp() {
    List<string> li = new List<string>();
    li.Add("Ravi");
    li.Add("Raj");
    Return li;
}

C++

void main() {
    HRESULT Hr=CoInitilize(NULL);
    ITestPtr p(__uuid("DemoClass");
    std::list l=(std::list)p->Disp();
}

但奇怪的是,有时它会显示 Disp 不是 ITest 的成员,有时会出现类型转换错误。我已经验证这只是因为返回类型是 List

最佳答案

您还可以使用 Boost Range MFC/ATL Extenstion

CList<CString> vcList;
std::list<T> stdList;
BOOST_FOREACH( CString s, vcList)
{
    stdList.push_back(s);
}

关于c# - 如何将 vc++(例如:IListPtr)指针转换为 std::list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1033169/

相关文章:

c++ - 快速傅立叶变换 : using templated derived classes 'undefined reference' error even though header and . cpp 文件匹配

c++ - 错误,* 的运算符必须是指针

database - 从 Visual C++ 程序/项目中按一定时间间隔在数据库中插入值

windows - windows操作系统默认自带一些VC++运行时吗?

c++ - 显示来自 api 返回数据的特定数据,C++ REST SDK a.k.a Casablanka

c# - Paypal 定期付款 - Express Checkout APPID 被拒绝

c# - 通过Selenium点击Captcha总是引发图片验证

c# - 如何使用 LINQ to "prune"字典?

c# - 将 uniqueidentifier 参数传递给存储过程

c++ - 如何使用 Makevars 链接到 RCPP 中已编译的外部共享库?