【发布时间】:2012-12-21 16:07:06
【问题描述】:
我有这样的问题:
我有一个带有这个签名的 c++ 函数:
int myfunction ( char* Buffer, int * rotation)
缓冲区参数必须用空格字符(0x20 hex)填充
在 C++ 中,我可以简单地解决这个问题:
char* buffer = (char *)malloc(256);
memset(buffer,0x20,256);
res = myfunction (buffer, rotation);
我正在尝试从 C# 调用此函数。
这是我的 p/invoke 声明:
[DllImport("mydll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern unsafe int myfunction (StringBuilder Buffer, int* RotDegree);
在我的 C# 课程中,我尝试过这样做:
StringBuilder buffer = new StringBuilder(256);
buffer.Append(' ', 256);
...
myfunction(buffer, rotation);
但它不起作用....
谁能帮帮我?
谢谢。
【问题讨论】:
-
“但它不起作用”没有帮助。
-
您甚至没有显示 p/invoke 声明!如果没有这样的基本信息,我们将无法为您提供帮助。
-
@FrancisP 这个问题不是那个问题的重复!