在DLLMAIN()

时间:2019-01-04 14:18:27

标签: c++

我试图创建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

我在这里做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

可能是因为您尚未声明函数。放一个

void foo1();
void foo2();

在DllMain之前,它将进行编译。

但是要警告。 You should not do anything substantial in DllMain。特别是涉及直接或间接加载库的任何事情都可能导致死锁。