Вызвать метод для DLL в WindowsForms - PullRequest
3 голосов
/ 29 января 2012

У меня есть DLL, которая содержит эту функцию:

int __stdcall PrnText(char *printtext);

В Windows Forms у меня есть этот код для вызова DLL:

[DllImport("Printing.dll", EntryPoint = "PrnText", CharSet = CharSet.Ansi)]
public static extern int PrnText(char *printtext);

Когда я вызываю функцию в коде C #, я получаю сообщение об ошибке: «не могу привести строку к символу *

PrnText("Hello World");

Какой параметр я должен дать PrnText (), чтобы он работал?

Позднее редактировать:

  Parameter: printtext
  pointer to string containing text to be printed

1 Ответ

3 голосов
/ 29 января 2012

CLR знает, как преобразовать string в неуправляемый char* во время выполнения.Вы должны использовать подпись, которая принимает string, например:

public static extern int PrnText(string printtext);

Обратите внимание, что это будет работать, только если параметр является входным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...