zhangxuwen99
2017-12-01 02:58C#调用C++DLL时char *类型参数的值不会变,求支招。
我用C++做了一个DLL,code如下:
char* ReadString(const char *sec, const char *key,char *def, const char *file)
{
ZeroMemory(strReturnValue,sizeof(strReturnValue));
int i = GetPrivateProfileString(sec, key, "",strReturnValue, 2048, file);
def = &strReturnValue[0];
return strReturnValue;
}
然后用C#来调用这个函数,code如下:
[MarshalAs(UnmanagedType.LPStr)]
StringBuilder def;
private void button1_Click(object sender, EventArgs e)
{
string a = "No data exsit.";
def = new StringBuilder(a);
string file = Environment.CurrentDirectory + "\uConfig.ini";
string aa = iFunction.ReadString("Config", "MesDB", def, file);
}
不知道为什么这个char *def的值就是改变不了,一直为a, 但ReadString方法的返回值是正常的,求支招。
- 点赞
- 回答
- 收藏
- 复制链接分享
1条回答
为你推荐
- C#调用C++写的DLL类库 结构类型的数据如何传参 和 接收返回
- c++
- c#
- 4个回答
- C#调用C++的DLL(64位)(Debug版本和Release版本结果不同)
- 开发语言
- c++
- 3个回答
- 托管C++类如何反射调用C# DLL
- c++
- c#
- 1个回答
- c#无法使用QtCreator封装的dll,报错误System.BadImageFormatException
- c++
- c#
- visual studio
- 1个回答
- 一个C++写得DLL我应该怎么在c#里面声明及调用
- c++
- c#
- dll
- unicode
- 2个回答
换一换