高手请进!在VC中调用API函数的问题?特急!特急!特急!今天要搞定! 改变函数的名字,要不,在DEF文件中使用别名来标识,一般情况下对于自定义的函数名都加一些前缀或后缀,用来跟别的API函数区别开 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加全局范围符,如下:::API函数名(参数表) 没办法,我以前做的一个系统里边用到了对API的调用,但是我现在想在调用这个API前做些处理,如果给每个地方都加的话太麻烦了,用不同的函数名的话一样,以前的所有调用都得改,万一有漏的那岂不死定了,而且这样还要重新测试.我记得好象是在前边加什么的可是就是想不起来了还请高手指教.加::不行的还是调用的自定义函数 把你自定义的函数用namespace可以这样写namespace mydefine{YOUFuntionName();}在调用你自己的函数前加上 mydefine::即可 还是不对,我是说我现在怎么调用API,因为有些地方可能不用的(这很少的).高手们帮帮我呀,否则我会很惨的. 有办法啊, 因为你调用的少 可以loadlibrary然后GetProcAddress就行了, 最后你自己另写一个函数包一下 ok看得懂吗 还是用namespacenamespace callAPI{API();}行不行?callAPI::API 奇怪,你的API和API重名,居然会不报错?怎么写得?我写的函数,编译为什么就报错? 你自己定义的函数如果在类中的话,加::后执行的是API。 用GetProcAddress 把系统API另起个名,如:myfunc,再调用myfunc,这个API你是不是很少用??例子到[email protected] 用宏呀!我这样就实现过:比如要改HeapAlloc/HeapFree:#ifdef _DEBUGint g_AllocCount = 0;LPVOID HeapAllocDebug(HANDLE hHeap, DWORD dwFlags, DWORD dwBytes){ LPVOID lpMem = HeapAlloc(hHeap, dwFlags, dwBytes); g_AllocCount++; TCHAR tErr[128]; _stprintf(tErr, TEXT("HeapAlloc! Count = %d, Pointer = %p;\n"), g_AllocCount, lpMem); OutputDebugString(tErr); return lpMem;}BOOL HeapFreeDebug(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem){ g_AllocCount--; TCHAR tErr[128]; _stprintf(tErr, TEXT("HeapFree! Count = %d, Pointer = %p;\n"), g_AllocCount, lpMem); OutputDebugString(tErr); return HeapFree(hHeap, dwFlags, lpMem);}LPVOID HeapReAllocDebug(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, DWORD dwBytes){ LPVOID lpNewMem = HeapReAlloc(hHeap, dwFlags, lpMem, dwBytes); TCHAR tErr[128]; _stprintf(tErr, TEXT("HeapReAlloc! Old_Pointer = %p, New_Pointer = %p;\n"), lpMem, lpNewMem); OutputDebugString(tErr); return lpNewMem;}#define HeapAlloc HeapAllocDebug#define HeapFree HeapFreeDebug#define HeapReAlloc HeapReAllocDebug#endif MFC ActiveX 窗体问题 想听高人对SOCKET的阻塞及非阻塞模式进行详谈。 DrawDibDraw的使用问题!?不太会用,出错了!&_& Atl 的复合控件,在复合控件的对话框中,将始果得到Edit,Radio的值 编译问题 VC++中如何使用complex模板类?在线等待100分 如何屏蔽窗口的鼠标事件,很简单吗?100 关于MFC的基本问题,大家抢分啊!!! GGA语句解析&定时 使用7za进行压缩和解压缩 怎么获取进度 并显示在进度条上 怎样得到当前ie的url等信息! 我的线程中出现了该死的内存泄露问题!!!!
::API函数名(参数表)
namespace mydefine
{
YOUFuntionName();
}在调用你自己的函数前加上 mydefine::即可
可以loadlibrary然后GetProcAddress就行了,
最后你自己另写一个函数包一下
ok
看得懂吗
namespace callAPI
{
API();
}行不行?
callAPI::API
我写的函数,编译为什么就报错?
例子到[email protected]
比如要改HeapAlloc/HeapFree:#ifdef _DEBUGint g_AllocCount = 0;LPVOID HeapAllocDebug(HANDLE hHeap, DWORD dwFlags, DWORD dwBytes)
{
LPVOID lpMem = HeapAlloc(hHeap, dwFlags, dwBytes);
g_AllocCount++;
TCHAR tErr[128];
_stprintf(tErr, TEXT("HeapAlloc! Count = %d, Pointer = %p;\n"), g_AllocCount, lpMem);
OutputDebugString(tErr);
return lpMem;
}BOOL HeapFreeDebug(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem)
{
g_AllocCount--;
TCHAR tErr[128];
_stprintf(tErr, TEXT("HeapFree! Count = %d, Pointer = %p;\n"), g_AllocCount, lpMem);
OutputDebugString(tErr);
return HeapFree(hHeap, dwFlags, lpMem);
}LPVOID HeapReAllocDebug(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem, DWORD dwBytes)
{
LPVOID lpNewMem = HeapReAlloc(hHeap, dwFlags, lpMem, dwBytes);
TCHAR tErr[128];
_stprintf(tErr, TEXT("HeapReAlloc! Old_Pointer = %p, New_Pointer = %p;\n"), lpMem, lpNewMem);
OutputDebugString(tErr);
return lpNewMem;
}#define HeapAlloc HeapAllocDebug
#define HeapFree HeapFreeDebug
#define HeapReAlloc HeapReAllocDebug#endif