谢谢大家!
解决方案 »
- 按钮标记问题
- DCOM组件的引用计数变为0之后,要隔多久才从内存中被释放
- 如何在应用程序打开时运行初始化的操作?
- [求救]如何用msxml读以下xml文档,急,谢谢!!!!!!!!
- 100分求助, VC中如何调用OUTLOOK中的日历功能? 请给个例子.
- 谁又通过 http 下载文件的代码?
- 请教MDI应用程序中各种指针的交叉使用问题,请高手们进来指点一下!
- 如何使用IE的通知消息?(在线等待)
- vc 如何 读取 txt 文件 中的数值 包括科学计数法?
- MFC中Button按钮设置位图在Windows XP系统中失败
- 谁有关于勾子的例子或好的书,请推荐几本,谢谢。
- 鼠标按下,如何得到鼠标当前所在控件的指针
函数中有一个DLL_PROCESS_ATTACH,当你的程序加载这个DLL的时候,这个消息
通知就被触发,当你的程序中的某个线程用到DLL中的导出函数时DLL_THREAD_ATTACH
消息通知被触发!加载DLL的方法有显式加载和隐式加载两种
显式加载用LoadLibrary(),GetProcAddress(),FreeLibrary()等函数
但是不要忘了,在LoadLibrary()之后,要在你的程序中用typedef来定义一下
你要从DLL中调用的导出函数!隐式加载是在你的程序中包含你的DLL的头文件和.lib文件!祝你成功!
{
....
}dll是在这里加载的,你可以在这里写入一些信息来来确定dll是否加载。。
#include <windows.h>
#include <stdio.h>
#include "psapi.h"void PrintModules( DWORD processID )
{
HMODULE hMods[1024];
HANDLE hProcess;
DWORD cbNeeded;
unsigned int i; // Print the process identifier. printf( "\nProcess ID: %u\n", processID ); // Get a list of all the modules in this process. hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, processID );
if (NULL == hProcess)
return; if( EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded))
{
for ( i = 0; i < (cbNeeded / sizeof(HMODULE)); i++ )
{
char szModName[MAX_PATH]; // Get the full path to the module's file. if ( GetModuleFileNameEx( hProcess, hMods[i], szModName,
sizeof(szModName)))
{
// Print the module name and handle value. printf("\t%s (0x%08X)\n", szModName, hMods[i] );
}
}
} CloseHandle( hProcess );
}void main( )
{
// Get the list of process identifiers. DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i; if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return; // Calculate how many process identifiers were returned. cProcesses = cbNeeded / sizeof(DWORD); // Print the name of the modules for each process. for ( i = 0; i < cProcesses; i++ )
PrintModules( aProcesses[i] );
}