我试图创建DLL文件,但在DLLMAIN()内部运行函数时遇到问题。
我想做这样的事情:
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
INT APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
foo1();
break;
case DLL_PROCESS_DETACH:
foo2()();
break;
}
return true;
}
void foo1(){
//code
}
void foo2(){
// code
}
但不起作用。 当我尝试建立即时通讯文件时
'foo1' identifier not found
'foo2' identifier not found
我在这里做错了什么?
谢谢!
答案 0 :(得分:1)
可能是因为您尚未声明函数。放一个
void foo1();
void foo2();
在DllMain之前,它将进行编译。
但是要警告。 You should not do anything substantial in DllMain。特别是涉及直接或间接加载库的任何事情都可能导致死锁。