我有一个包含此功能的dll:
int __stdcall PrnText(char *printtext);
在Windows窗体中,我有这个代码来调用dll:
[DllImport("Printing.dll", EntryPoint = "PrnText", CharSet = CharSet.Ansi)]
public static extern int PrnText(char *printtext);
当我用C#代码调用该函数时,我得到如下错误:“无法将字符串转换为char *
PrnText("Hello World");
我应该为PrnText()提供什么参数才能使其正常工作?
稍后编辑:
Parameter: printtext
pointer to string containing text to be printed
答案 0 :(得分:3)
CLR知道如何在运行时将string
转换为非托管char*
。您应该使用接受string
的签名,如下:
public static extern int PrnText(string printtext);
请注意,仅当参数仅为输入时才会起作用。