版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.youkuaiyun.com/benbencoco/article/details/26222449
C++中调用C#,dll,想象着跟调用C++的dll一样,引用头文件,引用命名空间...
#using "D:\\SoftWare\\DeviceManage\\ActivityVote.dll"using namespace ActivityVote;
声明变量
ActivityVote::ActivityVotePublic ^ m_ActivityVote;
编译,如下错误出现:
1> TestSMS.cpp
1>d:\vs2010\testzhou\testsms\testsms\TestSMSDlg.h(36): error C3265: 无法声明托管“m_ActivityVote”(在非托管“CTestSMSDlg”中)
1> 不能声明全局或静态变量,也不能声明引用 gc 堆中对象的本机类型成员
1> TestSMSDlg.cpp
1>d:\vs2010\testzhou\testsms\testsms\TestSMSDlg.h(36): error C3265: 无法声明托管“m_ActivityVote”(在非托管“CTestSMSDlg”中)
1> 不能声明全局或静态变量,也不能声明引用 gc 堆中对象的本机类型成员
修改:
gcroot<ActivityVote::ActivityVotePublic^> m_ActivityVote;
编译通过!
————————————————
版权声明:本文为优快云博主「sky-defender」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/benbencoco/article/details/26222449
本文详细介绍了如何在C++中正确调用C#的DLL,避免常见的编译错误,如声明托管变量的问题,并提供了正确的gcroot使用示例。
2885

被折叠的 条评论
为什么被折叠?



