下面是个结束进程的操作,当我编译完成后,我点ctrl+F5程序正常执行了,可是在生成的EXE文件,或直接按F5调试,就一定不执行,只是瞬间闪一下就结束了,程序内容(结束进程)根本不执行..小弟是新手,听说线程同步什么的,大家看我这是几线程的,要是真是线程同步问题,我该怎么改呢。。
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
typedef DWORD (_stdcall *XXXNtUnmapViewOfSection)( HANDLE hProcess, PVOID Address);
void UnloadNtdll()
{
PVOID NtdllAddress;
HANDLE hProcess;
XXXNtUnmapViewOfSection NtUnmapViewOfSection;
HWND hWindow;
BOOL bRet = TRUE; hProcess = OpenProcess( PROCESS_VM_OPERATION, FALSE,“进程PID(这里我只是代表下)”);
NtUnmapViewOfSection = (XXXNtUnmapViewOfSection)GetProcAddress( GetModuleHandle("ntdll.dll"), "NtUnmapViewOfSection" );
NtdllAddress = (PVOID)NtUnmapViewOfSection;
NtUnmapViewOfSection( hProcess, NtdllAddress);
CloseHandle( hProcess );
//Sleep(2000);我曾试过加个暂停也不行
}
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
UnloadNtdll();
return 0;
}
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
typedef DWORD (_stdcall *XXXNtUnmapViewOfSection)( HANDLE hProcess, PVOID Address);
void UnloadNtdll()
{
PVOID NtdllAddress;
HANDLE hProcess;
XXXNtUnmapViewOfSection NtUnmapViewOfSection;
HWND hWindow;
BOOL bRet = TRUE; hProcess = OpenProcess( PROCESS_VM_OPERATION, FALSE,“进程PID(这里我只是代表下)”);
NtUnmapViewOfSection = (XXXNtUnmapViewOfSection)GetProcAddress( GetModuleHandle("ntdll.dll"), "NtUnmapViewOfSection" );
NtdllAddress = (PVOID)NtUnmapViewOfSection;
NtUnmapViewOfSection( hProcess, NtdllAddress);
CloseHandle( hProcess );
//Sleep(2000);我曾试过加个暂停也不行
}
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
UnloadNtdll();
return 0;
}
解决方案 »
- win7 的socket通信问题
- 关于OnInitDialog()与OnPaint()的问题
- sos:使用MFC中spin时遇到的
- 急问!CStatic如何从右到左输出字符?!
- [vc+access]sql语句中怎么定义变量啊??
- 写一个 网页文件解析程序,,要求将网页文件中的URL提取出来,功能类似于网络蜘蛛对网页文件的分析过程,,,那位高人,能指点一下,,有代码的,,
- 控制台线程里的消息循环中消息为什么不删除啊???
- ocx中包含的资源倒出问题~~ 555 晕ing
- MFC中,动态加入的子菜单如何设置其响应函数?
- 如何去掉属性页上的“帮助”按钮,MSDN上的方法无效?
- DRAWITEMSTRUCT的用法
- 请教!!!
hProcess = OpenProcess( PROCESS_VM_OPERATION, FALSE,GetSpecifiedProcessId("ravmond.exe"));
hprocess能得到值,可是在EXE中它确为NULL,就是说这里最有可能出问题,那这是为什么呢???