问一个小疑点
问一个小问题
这是某段代码的一部分:
HANDLE hWnd = ::OpenProcess (PROCESS_ALL_ACCESS,FALSE,992);
if(!hWnd)return 0;
void *pRemoteThread =::VirtualAllocEx(hWnd,0,THREADSIZE,MEM_COMMIT| MEM_RESERVE,PAGE_EXECUTE_READWRITE);//申请
if(!pRemoteThread)return 0;
if(!::WriteProcessMemory(hWnd,pRemoteThread,&ThreadProc,THREADSIZE,0))
//写入进程
return 0;
想问一下在几个API函数前面的 :: 符号是什么意思?有什么用的?
------解决方案--------------------
当有个全局函数叫OpenProcess ,有个成员函数也叫OpenProcess ,区别两者的方法就是在全局函数OpenProcess 前加::,
就算没有成员函数也叫OpenProcess ,在成员函数中调用全局函数时在前面加止::,也会使代码清析.
------解决方案--------------------
::运算符搞定很多东西,其中最基本的一个用处就是用来决议多继承中的重名成员。::运算符的本质是:左操作数是一个scope,右操作数是这个scope内的名字,可以是scope,class,member或者function,variable等等,从左操作数指定的scope中找到有操作数这个实体。
转
------解决方案--------------------
::为域运算符,若前面没有其他的类名则表示调用的是全局函数,若前面有具体的类名则表示调用该类中定义的函数
这是某段代码的一部分:
HANDLE hWnd = ::OpenProcess (PROCESS_ALL_ACCESS,FALSE,992);
if(!hWnd)return 0;
void *pRemoteThread =::VirtualAllocEx(hWnd,0,THREADSIZE,MEM_COMMIT| MEM_RESERVE,PAGE_EXECUTE_READWRITE);//申请
if(!pRemoteThread)return 0;
if(!::WriteProcessMemory(hWnd,pRemoteThread,&ThreadProc,THREADSIZE,0))
//写入进程
return 0;
想问一下在几个API函数前面的 :: 符号是什么意思?有什么用的?
------解决方案--------------------
当有个全局函数叫OpenProcess ,有个成员函数也叫OpenProcess ,区别两者的方法就是在全局函数OpenProcess 前加::,
就算没有成员函数也叫OpenProcess ,在成员函数中调用全局函数时在前面加止::,也会使代码清析.
------解决方案--------------------
::运算符搞定很多东西,其中最基本的一个用处就是用来决议多继承中的重名成员。::运算符的本质是:左操作数是一个scope,右操作数是这个scope内的名字,可以是scope,class,member或者function,variable等等,从左操作数指定的scope中找到有操作数这个实体。
转
------解决方案--------------------
::为域运算符,若前面没有其他的类名则表示调用的是全局函数,若前面有具体的类名则表示调用该类中定义的函数