我道歉,如果这已经被问过,但我一直在努力,现在找到了几个星期的答案。
我不是当涉及到共享库特别能干,但是使用CLion RC 1.0
(及其集成的CMake)与MinGW
,我一直无法创建一个功能的Windows DLL
带DllMain
函数。 我还是设法创建.dll
文件,但它很快就发现符号没有corrrectly出口。
简单地说,我希望看到相同或类似的行为什么是与Visual Studio的默认的Win32 DLL模板获得。
的CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
project(DllMainTest)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_library(DllMainTest SHARED ${SOURCE_FILES})
main.cpp中
#include <windows.h>
extern "C" BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved
) {
switch(fdwReason) {
case DLL_PROCESS_ATTACH:
MessageBox(NULL, "It works!", "Status", MB_OK);
case DLL_PROCESS_DETACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
default:
break;
}
return TRUE;
}
编辑 :该DLL的目的是将它注入到一个32位的过程,并且它可以显示在负载一个MessageBox。