Импортирование DllMain winapi .dll в проект Visual Studio C ++ - PullRequest
0 голосов
/ 08 апреля 2010

У меня есть .def-файл, .lib-файл, .dll, исходные файлы.

Он использует WINAPI DllMain, все его функции следуют этому.

Это так:

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
       )
{
    return TRUE;
}


extern "C"
{
int WINAPI DoSomething() { return -1; }
int WINAPI DOSOMETHIGNELSE!() { return 202020; }
};

В компоновщик настроек проекта я добавил .lib файл. В внешней части "C" отсутствует заголовочный файл для фактических функций.

Я включаю windows.h, пытаюсь вызвать DoSomething (), но не знаю, что это такое.

1 Ответ

1 голос
/ 08 апреля 2010

Я не совсем уверен, что именно вы запрашиваете, но я думаю, что по крайней мере вам нужно будет создать файл .h для кода клиента, чтобы он мог вызывать функции в DLL - иначе будет ли компилятор знать, как называется DoSomething?

Заголовочный файл должен выглядеть примерно так:

#ifndef DOSOMETHING_H
#define DOSOMETHING_H

#ifdef __cplusplus
extern "C"
{
#endif

int WINAPI DoSomething(void);


// I commented out the 2nd function because I don't think the `!` character 
//  could ever be valid there

//int WINAPI DOSOMETHIGNELSE!();


#ifdef __cplusplus
}
#endif

#endif /* DOSOMETHING_H */
...