|

楼主 |
发表于 2019-8-20 15:14:54
|
显示全部楼层
如果DLL不导出任何函数,但是让别的程序加载。
在VS里面,这种设置的。
生成后:
- #include "stdafx.h"
- #include "testtest.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- // 唯一的应用程序对象
- CWinApp theApp;
- using namespace std;
- int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
- {
- int nRetCode = 0;
- // 初始化 MFC 并在失败时显示错误
- if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
- {
- // TODO: 更改错误代码以符合您的需要
- _tprintf(_T("错误: MFC 初始化失败\n"));
- nRetCode = 1;
- }
- else
- {
- // TODO: 在此处为应用程序的行为编写代码。
- }
- return nRetCode;
- }
复制代码
只有_tmain,是不是只能导出类,因为没有dllmain,
所以不能像win32 dll中那样在DLL_PROCESS_ATTACH的时候调用fun()吧?
- void fun()
- {
- OutputDebugString("已经加载^_^!\n");
- }
- BOOL APIENTRY DllMain( HMODULE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- {
- fun();
- }
- break;
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- break;
- }
- return TRUE;
- }
复制代码
求助老大,搞晕了。 |
|