C#中使用c++的dll传递的string出现问题,我在传递的C++ 的string中存储的值为“EA365”,C++代码如下:
extern "C" __declspec(dllexport) string lala()
{
//……
//char[]=planenumber; string a=planenumber;
return a;
}C#代码如下:
[DllImport("duxie.dll", EntryPoint = "lala")]
public static extern string lala(); static void Main(string[] args)
{
string a =lala();//lala的值为“EA365”
Console.WriteLine("{0}",a);
Console.ReadKey();
}
结果输出的是: 傒?EA365后来将
[DllImport("duxie.dll", EntryPoint = "lala")]
public static extern string lala();
改为
[DllImport("duxie.dll", EntryPoint = "lala",CharSet=CharSet.Ansi或是None)]
public static extern string lala();
还是不行,求解答!!!给加分!!!谢谢啦!!!我快死了!!!
extern "C" __declspec(dllexport) string lala()
{
//……
//char[]=planenumber; string a=planenumber;
return a;
}C#代码如下:
[DllImport("duxie.dll", EntryPoint = "lala")]
public static extern string lala(); static void Main(string[] args)
{
string a =lala();//lala的值为“EA365”
Console.WriteLine("{0}",a);
Console.ReadKey();
}
结果输出的是: 傒?EA365后来将
[DllImport("duxie.dll", EntryPoint = "lala")]
public static extern string lala();
改为
[DllImport("duxie.dll", EntryPoint = "lala",CharSet=CharSet.Ansi或是None)]
public static extern string lala();
还是不行,求解答!!!给加分!!!谢谢啦!!!我快死了!!!
const char g_szData[] = "EA365";
extern "C" __declspec(dllexport) char* lala()
{
return (char*)g_szData;
}
c++的代码修改一下。你不要用stl类型。