在Windows窗体中调用dll的方法

时间:2012-01-29 12:03:10

标签: c# winforms printing invoke

我有一个包含此功能的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

1 个答案:

答案 0 :(得分:3)

CLR知道如何在运行时将string转换为非托管char*。您应该使用接受string的签名,如下:

public static extern int PrnText(string printtext);

请注意,仅当参数仅为输入时才会起作用。