to haohaohaohao() :对头,我是将c++中的LPCTSTR类型参数,在C#中用[MarshalAs(UnmanagedType.LPTStr)]string 来申明的,是相对应的类型。 但是我调试的时候发现,从C#传进的string(比如“Test”),到了C++的dll里的函数时就变了(只有个“T”了),而且一旦对这个参数进行操作就要出错,怎么办啊,唉。
使用unsafe关键字 在不安全代码中使用指针。
试了一会还是不行,是我没有搞懂,to zhzuo(秋枫) :能具体贴点代码吗?多谢了!
“未将对象引用设置到对象的实例” 一般将发生错误的那个参数定义前面加ref就对了
to Ninputer(装配脑袋) :刚才试了,不过还是不行,而且连string的第一个字符都乱了。看来看去还是从C#这边传过去的string有问题,但是没有办法解决,不知道还要怎么做。
调用dll特别容易出错!
让人很郁闷!·
但是我调试的时候发现,从C#传进的string(比如“Test”),到了C++的dll里的函数时就变了(只有个“T”了),而且一旦对这个参数进行操作就要出错,怎么办啊,唉。
在不安全代码中使用指针。
一般将发生错误的那个参数定义前面加ref就对了