windowsform dllmain dynamic library
windowsform dllmain dynamic library
stackoverflower我遇到了一个问题,所以我用windows的形式制作了一个应用程序,但现在我想让它显示出来,因为我把它注入了一个动态库,而不是一个可执行的库,现在你把它用于winapi
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&showform, NULL, 0, 0);
break;
case DLL_THREAD_ATTACH: break;
case DLL_THREAD_DETACH: break;
case DLL_PROCESS_DETACH: break;
}
return TRUE;
}
我在的窗口上试过这个
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hinstDLL);
hProcessCenter = ::FindWindow(NULL, _T("WINDOW"));
}
return 1;
}
我得到这些错误的windows窗体:
错误1错误C3641:"DllMain":使用/clr:pure或/clr:safe 编译的函数的调用约定"__stdcall"无效
错误2错误C2065:"hProcessCenter":未声明的标识符
错误3错误C3861:"_T":找不到标识符
我希望有人能帮我解决
要更正错误#1,您应该编译为本机代码,而不是托管
修复错误#2:
HWND hProcessCenter;
if (fdwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hinstDLL);
hProcessCenter = ::FindWindow(NULL, _T("WINDOW"));
}
修复错误#3:
#include <tchar.h>
对于错误1,我将参考此处接受答案中的示例以获得正确的包含:如何为mingw32指定dll onload函数?
错误2表示您需要在DllMain(…(函数中的某个位置定义"hProcessCenter"。可能,因为您没有在某个地方使用该变量,所以可以将该行转换为::FindWindow(NULL, _T("WINDOW"));
,以具有可编译的代码。
对于错误3,您需要确保使用Unicode支持进行编译。否则,找不到宏_T
(_T在CString中代表什么(。
相关文章:
- Boost Graph Library,修复节点大小
- SFML library: http request
- 在成员dynamic_bitset上使用 boost::from_block_range 时出错,但在本地dynamic
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- Linking library C++
- 在VS2019项目中集成ImageMagick:x64-windows-static library
- OpenSSL fips in C++ wrapper Library 如何?错误:指纹不匹配
- C++ class vs a library
- C++ library with Tensorflow on Android
- CMake:尝试在 Jenkins 构建机器上运行时出现"Linked Library"错误 (0xc0000135)
- C++类中的二维"dynamic"数组?
- 将 c++ cmake-library 构建发布到本地存储库时出现 Gradle 错误
- protobuf in C++ with dynamic binding for google::protobuf::M
- 为什么'allocate in one library and free in the other'是错误的
- 链接 library.lib 使用 setup.py.
- 目标提升::<library>已经有导入的位置 + 链接错误
- 如何修复'The procedure entry point SDL_RWclose could not be located in the dynamic link library'
- "The ordinal 344 could not be located in the dynamic link library"
- Mac Dynamic Library Craziness(可能僅僅是Fortran)
- windowsform dllmain dynamic library