日期:2014-05-17  浏览次数:20909 次

C++ 调用 C#, string设置不了
C#写了一个COM组件,用C++调用。好设置C#中类的string字段,设不了
int这些可以设,就是string不行

高手,为啥呢。。。
C#
interface A_I
{
   [disp1]
   void set_attr(string value1)
}
class A: interface A_I
{
   string attr1;

   public void set_attr(string value1)
   {
       this.attr1 = value1;
   }
}

C++
com_A->set_attr(L"askd");
就上面这样, class A的attr1没设上
string c# c++ interface class

------解决方案--------------------
在this.attr1 = value1;下端点调试
class A: interface A_I
=〉
class A: A_I
------解决方案--------------------
忘了一点,对于unicode,不要用char*,用sbyte*。
------解决方案--------------------
try
 
public void set_attr(string value1)
---》
 public void set_attr([MarshalAs(UnmanagedType.LPWStr)]string value1)