【发布时间】:2014-06-18 08:06:04
【问题描述】:
我有一个 C++ 库,并在其中编写了一些函数。
此函数必须返回一个整数和一个字符串。 (2 个输出),我将从我的 C# 程序中调用此函数。
这是我的 C++ 代码:
extern "C"{
__declspec(dllexport) UINT Read(OUT char* Temp )
{
.....
}
}
这是我在 ImportDll 类中的 C# 代码:
[DllImport("Library.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern uint Read(char[] temp);
在我的表格中我有这个:
char[] str = new char[256];
ImportDLL.Read(str);
它正确返回一个 Int 但字符串结果(str 数组)完全为零(\0)!
我的代码有什么问题?
谢谢。
【问题讨论】:
-
为什么要用char[],可以用string。
-
如果你有dll代码,那么你可以调试“读取”函数,看看函数内部发生了什么。