读书人

C#调用C++DLL输出字符串,该怎么处理

发布时间: 2013-08-06 16:47:25 作者: rapoo

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,问题出在哪了,希望懂得帮帮忙。
谢谢。 C++ C#
[解决办法]
std::wcout

读书人网 >C#

热点推荐