System.EntryPointNotFoundException при импорте функций из DLL - PullRequest
0 голосов
/ 05 июля 2010

У меня есть Dll, который был создан с VC ++.Я уверен, что Dll работает, потому что когда я импортирую его в тестовую программу, написанную на VC ++, он работает и выдает правильные данные.

Но когда я пытаюсь использовать его в тестовой программе VB.Net, он генерирует System.EntryPointNotFoundException

Все функции Dll используют stdcall.

Вот исходный код тестовой программы VB.NET:исходный код DLL

#include <SDKDDKVer.h>
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
__declspec(dllexport)int _stdcall func();

BOOL APIENTRY DllMain(HMODULE hModule,DWORD l_reason_for_call, LPVOID lpReserved)
{
    return TRUE;
}
int _stdcall func()
{
    return 123;
}

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 05 июля 2010

Неважно, я понял это. Мне нужно было добавить псевдоним в мои объявления.

Я запустил dumpbin на моей dll и нашел имена для импорта.

Таким образом, мое имя декларации должно было быть:

Public Declare Function func Lib "dll.dll" Alias "?func@@YG_NXZ" As Integer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...