http://www.cnblogs.com/wuxilin/archive/2006/04/27/386235.html
这片文章解决了我乱码的问题.
char* str = new char[word.GetLength()];
strcpy(str,word.GetBuffer(word.GetLength()));
原因是我的方式虽然一般情况下可以得到值,但是指针引用的依然是CString的地址,下面的方法new了新地址,在值拷贝,就没问题了:)
解决返回结果乱码的问题
主要是CString是const char*转换为char*是不可以的.
还有C#中调用标准的dll windows32 dynameic link _library这里是托管代码调用非托管代码
The function declaration in header file extern "C"
[DllImport("E1402.dll")]
private static extern string Add1(int num1, int num2);
[DllImport("E1402.dll")]
private static extern string RetStr(string str1);
[DllImport("E1402.dll")]
private static extern string MD5_Calc(string chashthis);
调用返回char*时string 是可以转换的不管是输入还是输出都一样,至于网上很多人说的stringbuilder没有去试,原因是string确实可以.
现在Dll还没打出来.还要继续努力学习啊..
可能2天以后才能做出到时候一定把好的方法贴出来
这片文章解决了我乱码的问题.
char* str = new char[word.GetLength()];
strcpy(str,word.GetBuffer(word.GetLength()));
原因是我的方式虽然一般情况下可以得到值,但是指针引用的依然是CString的地址,下面的方法new了新地址,在值拷贝,就没问题了:)
解决返回结果乱码的问题
主要是CString是const char*转换为char*是不可以的.
还有C#中调用标准的dll windows32 dynameic link _library这里是托管代码调用非托管代码
The function declaration in header file extern "C"
[DllImport("E1402.dll")]
private static extern string Add1(int num1, int num2);
[DllImport("E1402.dll")]
private static extern string RetStr(string str1);
[DllImport("E1402.dll")]
private static extern string MD5_Calc(string chashthis);
调用返回char*时string 是可以转换的不管是输入还是输出都一样,至于网上很多人说的stringbuilder没有去试,原因是string确实可以.
现在Dll还没打出来.还要继续努力学习啊..
可能2天以后才能做出到时候一定把好的方法贴出来