如果得到User32.dll中SetWindLongPtr的函数地址?(在线结分)

csdn_lee 2003-12-11 02:54:21
我想动态加载API,SetWindowLongPtr,可不管用
SetWindowLongPtrA,SetWindowLongPtrW,还是SetWindowLongPtr,用GetProcAddress返
回的结果都是NULL?为什么?
其它的像SetWindowLongA,SetWindowLongW都可以得到,这个可是MSDN最小系统在Win95
就可以的啊?
...全文
189 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn_lee 2003-12-12
  • 打赏
  • 举报
回复
其实我是想Hook这个API
vcforever 2003-12-12
  • 打赏
  • 举报
回复
my OS windows2000 Professional sp3
yintongshun 2003-12-12
  • 打赏
  • 举报
回复
赞成 vcforever(霓裳羽衣),只记得这个函数是用来扩展的
csdn_lee 2003-12-12
  • 打赏
  • 举报
回复
I found it is a micro wrapper in winuser.h
thanks Lightest(一闪而过) !
会思考的草 2003-12-12
  • 打赏
  • 举报
回复
SetWindowLongPtr和GetWindowLongPtr这两个函数如果你没有安装最新的SDK的话,是没有的。这和MSDN上说的有误差,可能是bug吧,装了SDK应该会覆盖旧版的User32.dll。
SetWindowLong和GetWindowLong可以代替这两个函数,效果是一样的。
wyb_45 2003-12-12
  • 打赏
  • 举报
回复
招聘:
熟悉
1、VC++
2、swing
3、java
有上述工具使用1-2年以上


北京友联创新系统集成有限公司
联系方式:
010-62984859-0或8000
或010-82899479
联系人:包小姐
ylcxkj@vip.sina.com
Lightest 2003-12-12
  • 打赏
  • 举报
回复
GetWindowLongPtr只是一个宏定义.
NowCan 2003-12-12
  • 打赏
  • 举报
回复
同样,类似的GetWindowLongPtr也没有输出。
NowCan 2003-12-12
  • 打赏
  • 举报
回复
XP的User.dll也没有输出这个函数,怀疑是64位Windows才有的函数。
flyelf 2003-12-11
  • 打赏
  • 举报
回复
在win2k下没有找到有输出这个函数的dll
glacierrr 2003-12-11
  • 打赏
  • 举报
回复
我机器上也找不到,不顾我用得是vc6,可能是版本的关系了。如果有就简单了
先LoadLibrary,然后GetProcAddress,再之后就是用好了,最后FreeLiabrary了。
bmon_xyz 2003-12-11
  • 打赏
  • 举报
回复
winuser.h中有这个函数的定义啊:
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrA(
HWND hWnd,
int nIndex,
LONG_PTR dwNewLong);
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrW(
HWND hWnd,
int nIndex,
LONG_PTR dwNewLong);
#ifdef UNICODE
#define SetWindowLongPtr SetWindowLongPtrW
#else
#define SetWindowLongPtr SetWindowLongPtrA
#endif // !UNICODE
该函数用来替代SetWindowLong,如果要写兼容64位的程序就要用SetWindowLongPtr,在32位中该函数就是SetWindowLong.
vcforever 2003-12-11
  • 打赏
  • 举报
回复
其实在User32.dll中并没有SetWindowLongPtr这个函数。所以用显式调用的方法根本得不到这个函数的地址。令人不解的是在msdn中明确写着这个函数只需要包含winuser.h和windows.h
但在这两个文件中都没有SetWindowLongPtr函数的定义,而且windows三个主要的dll中的另外两个Gdi32.dll,Kernal32.dll中也没有此函数!
以上结果楼主可以通过vc中的Depends工具查看。
另外一点user32.lib中包含的内容不一定和user32.dll中的内容相同。

SetWindowLongPtr的功能完全可以用SetWindowLong来完成,楼主何不试一试!
能说的就这些了!

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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