Windows 运行一程序究竟用了什么函数?

liutaoxwl 2003-11-02 03:06:49
小的想知道在我运行一程序时,windows究竟调用了什么函数,所以用apihook对createprocessA CreateProcessW WinExec 进行拦截。在Win98下运行良好。都会执行我在 CreateProcessA中的MessageBox,可在某些Win2000下,运行有些程序Win2000会调用CreateProcessA, 并且从来没有对CreateProcessW拦截成功。在有的2000下则可以每次都拦截到 CreateprocessW,不知道这是为什么。在 xp下都会用CreateProcessW运行程序的
...全文
45 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcsdk 2003-11-03
  • 打赏
  • 举报
回复
学习
winay_dd 2003-11-03
  • 打赏
  • 举报
回复
3楼的说得正确。win2000内核是UNICODE化的
xiaohedou 2003-11-03
  • 打赏
  • 举报
回复
究竟用了什么函数?用Depends看看,这数VC里的工具。
vcforever 2003-11-02
  • 打赏
  • 举报
回复
Windows2000是用Unicode重新开发的,用于创建窗口、显示文本、进行字符串操作等所有核心函数都需要Unicode字符串。如果调用任何一个Windows函数并给他传递一个ANSI字符串,系统首先将字符串转换成Unicode字符串,然后将Unicode字符串传递给操作系统。如果希望函数返回ANSI字符串,系统会将Unicode字符串转换成ANSI字符串,然后将结果返回给你的程序。
楼主说的情况,我估计是应用程序的缘故,我们开发的大部分的应用程序都是ANSI的,可能在调用系统函数的时候就会调用ANSI版本的系统函数。

上面可能有说的不对的地方请大家指正,欢迎继续讨论!
lop5712 2003-11-02
  • 打赏
  • 举报
回复
可能Win2000有的版本并没有完全支持UNICODE(比如专业版,或者需要SP1、SP2什么的),因此有的是A有的是W,而Winxp是完全支持UNICODE的,当然是W
lsl7909 2003-11-02
  • 打赏
  • 举报
回复
Up

15,472

社区成员

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

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