C#调用C++DLL输出字符串
现在我想调用C++写的win32DLL函数,输出字符串。
DLL中的CPP函数:
XXX_API void __stdcall WriteString(wchar_t* content)
{
std::cout<<content;
}
C#cs:
[DllImport(@"...XXX",EntryPoint = "WriteString")]
extern unsafe static void WriteString(char* c);
static void Main(string[] args)
{
unsafe
{
fixed(char* p = &("hello".ToCharArray()[0]))
{
WriteString(p);
}
}
}
问题来了,固化字符串的内存地址后p的值是0X00BBA654,*p 值为 0x0067 ‘h’
但是在控制台输出的不是hello,而是00bba654,问题出在哪了,希望懂得帮帮忙。
谢谢。
------解决方案--------------------std::
wcout