我有.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()但不知道它是什么。
答案 0 :(得分:1)
我不确定你要求的是什么,但我认为至少你需要为客户端代码创建一个.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 */