两个库的头文件,同方法名(API名同)如何处理?

kingmax54212008 2017-07-18 09:40:00
两个库的头文件,同方法名(API名同)如何处理?
我的CPP程序,引用了,两个头文件,debugapi.h (来自WDK8.0 -windows驱动开发SDK) , WinBase.h (Windows库)。这两个头文件库里, 有同名方法: OutputDebugString

我调试的时候,会调用 OutputDebugString

但事实上 这个两个头文件下都有这个函数。 我函数要调用, WinBase.h的 OutputDebugString, 但实际执行或go to definition 会都指向debugapi.h下的OutputDebugString。

求大虾指教!!!


以下复制了写,标准头文件里的一些定义。
/****************** debugapi.h 下的定义**************************/
WINBASEAPI
VOID
WINAPI
OutputDebugStringW(
_In_opt_ LPCWSTR lpOutputString
);

#ifdef UNICODE
#define OutputDebugString OutputDebugStringW
#else
#define OutputDebugString OutputDebugStringA
#endif // !UNICODE



/****************** WinBase.h下的定义**************************/

WINBASEAPI
VOID
WINAPI
OutputDebugStringA(
_In_opt_ LPCSTR lpOutputString
);

WINBASEAPI
VOID
WINAPI
OutputDebugStringW(
_In_opt_ LPCWSTR lpOutputString
);

#ifdef UNICODE
#define OutputDebugString OutputDebugStringW
#else
#define OutputDebugString OutputDebugStringA
#endif // !UNICODE



//////////////////////////////////////////////////////////////////////////////////////////////////////



...全文
234 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingmax54212008 2017-07-19
  • 打赏
  • 举报
回复
是Windows, 泪啊~~~
jklinux 2017-07-19
  • 打赏
  • 举报
回复
windows就不会了,在linux下可以用代码来加载指定的动态库 void *dlopen(const char *filename, int flag); // filename就是动态库的带路径文件名 再在已加载的动态库里查找出想调用的函数的地址: void *dlsym(void *handle, const char *symbol); 找到后用函数指针来调用就可以了。 window上可能有相似的方法吧

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧