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)