0
我正在從C++發送一系列char arrays
到我的C#程序。從C++編碼到C#
的C++函數是這個樣子:
ReturnChar.cpp
extern "C" RETURNCHAR_API char* testString()
{
return test;
}
ReturnChar.h
extern "C" RETURNCHAR_API char* __cdecl testString();
ReturnChar導入C#
public static class ImportTest
{
[DllImport("ReturnChar.dll", EntryPoint = "testString", CallingConvention = CallingConvention.Cdecl)]
public static unsafe extern char* testString();
}
public partial class MainWindow : Window
{
public unsafe MainWindow()
{
InitializeComponent();
try
{
StringBuilder sb = new StringBuilder(new string(ImportTest.testString()));
textBox1.Text = sb.ToString();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
實際上我得到了結果,但看起來像在C++和C#之間存在編碼問題。我該如何解決這個問題?
我不打算在我的C++程序中使用wchar_t
,因爲我的操作是在char數組上完成的。我可以用C#編碼嗎?
[Interop從C#發送字符串到C++]的可能重複(http://stackoverflow.com/questions/683013/interop-sending-string-from-c-sharp-to-c) – 2012-02-20 07:07:57