调用WindowsForms中dll的方法

本文关键字:方法 dll WindowsForms 调用 | 更新日期: 2023-09-27 18:22:00

我有一个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

调用WindowsForms中dll的方法

CLR知道如何在运行时将string转换为非托管char*。您应该使用接受string的签名,例如:
public static extern int PrnText(string printtext);

请注意,只有在仅输入参数的情况下,此操作才会起作用。