【问题标题】:calling functions inside DLLMAIN()在 DLLMAIN() 中调用函数
【发布时间】:2019-01-04 14:18:27
【问题描述】:

我正在尝试创建 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

我在这里做错了什么?

谢谢!

【问题讨论】:

  • 这是 C 101;它与 Windows 或 DllMain 无关。函数需要在调用之前声明。

标签: c++


【解决方案1】:

可能是因为您没有声明函数。放一个

void foo1();
void foo2();

在你使用 DllMain 之前,它会编译。

但请注意。 You should not do anything substantial in DllMain。尤其是涉及直接或间接加载库的任何事情都可能导致死锁。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多