используя dllimport - PullRequest
       9

используя dllimport

2 голосов
/ 12 октября 2009

Я пытаюсь использовать атрибут DllImport в следующем коде:

[DllImport("grfinger.dll",EntryPoint="_grstartenroll@4")]
public static extern int startenroll(int context);

для получения имени функции я использовал dumpbin / export. Когда я запускаю код, я получаю следующее исключение:

Unable to find an entry point name '_grstartenroll@4' in DLL 'grfinger.dll'.

Как я могу устранить эту ошибку?

Ответы [ 2 ]

5 голосов
/ 12 октября 2009

_grstartenroll @ 4 - это оформленное имя функции в dll.

Это похоже на стандартное именование, вы можете попробовать:

[DllImport("grfinger.dll",EntryPoint="_grstartenroll@4", CallingConvention=CallingConvention.StdCall]
public static extern int startenroll(int context);

В противном случае я бы попытался получить недекорированное имя функции, вы можете перенаправить вывод dumpbin так:

свалка / экспорт grfinger.dll | undname _grstartenroll @ 4

, а затем используйте недокорированное имя функции в вашем импорте DLL.

0 голосов
/ 12 октября 2009

Не зная ничего о конкретной функции или библиотеке: я думаю, что указание точки входа как entrypoint="startenroll" или entrypoint="#4" вместо вывода дампа может помочь.

...