日期:2014-05-19  浏览次数:20920 次

C#调用C++的DLL的问题,急啊!!
小弟是新手,在C#中调用C++的DLL,C++接口原形为:Try(const   unsigned   int   DestType,const   std::string   ID);

调用方法如下:  
        [DllImport( "DesktopAgent.dll ",   CharSet   =   CharSet.Ansi)]
        public   static   extern   int   Try(uint   DestType,   string   ID);

Main中调用:
        MessageBox.Show( "测试: "   +   AgentSDK.AgentTryConsult(1, "1001 ").ToString());

结果调试报错:未将对象引用设置到对象的实例。接口中的const   std::string类型,在C#中应该怎么调用啊??

------解决方案--------------------
std::string不是一个简单对象,是STL的string类...

尝试StringBuilder,如果不行的话,建议建立中间托管C++程序,做为桥梁作用...
------解决方案--------------------
eee std::下这么麻烦么
------解决方案--------------------
你把uint ,改成int试试
------解决方案--------------------
const std::string
对应String而不是string,试试
------解决方案--------------------
似乎没错啊,郁闷了。 而且你的错误是说某个类对象没有实例化(没有new),是不是你其他地方的问题啊,跟DLL函数引用申明好像没关系.