★卢培培★ ── 欢迎光临卢培培(goodname008)的BLOG

人生真正的快乐,多在贫家茅舍,少在富室红楼。

卢培培
卢培培的公告


只有干不成事的人
没有干不成的事


代码下载说明:请将代码下载地址的链接复制到浏览器的地址栏,按下回车即可正常下载。

最近评论
jingang123gz:在C# 中怎么屏蔽WIN键啊?????
kennylyj:我在做类似的东西的时候遇到一个问题:
由于需要将一些16位的DOS程序的输出导出,因此使用了管道,但直接CreateProcess这些程序是不行的,必须通过ComSpec这个环境变量得到命令行程序的路径并把要运行的DOS程序的路径及相关参数作为命令行程序的参数才行,或者是先运行cmd/command,然后通过标准写端口写入要启动的程序的参数
而这样做却导致系统的虚拟机程序……
mycaibo:原来可以下载呀,我还自己写了一遍,不过说KBDLLHOOKSTRUCT没有定义,也不知道是为什么,谢谢哈
jarcyju:大哥下载不了呀,麻烦发一份给我,谢谢啦
zhuyc0808@gmail.com
wuzhongyi:我认为以上的方案不好,看样子你也是做开发的。先不考虑硬盘本身的分区特点及如何得到更快的访问速度,

现在如果c:\为系统盘,而也是你常用的。那样XP安装完以后要多大?2G左右吧,那么虚拟的内存又会占用1G多,你再装点软件什么的。VS2005+msdn即使你不装在C盘,照样撑死你。
文章分类
收藏
    相册
    其它图片
    文章用图
    A.我的软件
    1.注册表大师 v2.0
    2.窗口间谍
    3.图易贴 v1.1
    B.强烈推荐
    1.VB打造超酷个性化菜单[一]
    2.VB打造超酷个性化菜单[二]
    3.VB打造超酷个性化菜单[三]
    4.剖析VC++函数调用约定
    C.有脚印的地方
    CSDN--中国软件网
    微软中国社区
    微软中文新闻组
    D.开放源代码
    1.鼠标感应器
    2.VB自绘菜单类
    3.你想要钱吗?
    E.友情链接
    1. 凝尘
    2. 羽毛羽毛
    3. 泗水寻芳
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Win32 函数原型收藏

    新一篇: 剖析VC++函数调用约定 | 旧一篇: 用API播放音频及视频文件

    Win32函数原型分为普通、ANSIUnicode三种。其实如果严格地说,并不能有普通这种分法,也就是只有ANSIUnicode这两种。普通,一般都是MSDN开发文档中直接给出的形式。比如,下面是SetWindowText的普通原型:

     

    BOOL SetWindowText(HWND hwnd, LPCTSTR lpText);

     

        实际上,包含SetWindowText函数声明的头文件具体是用宏实现的:

     

    #ifdef UNICODE

    #define SetWindowText SetWindowTextW

    #else

    #define SetWindowText SetWindowTextA

    #endif // !UNICODE

     

        预处理程序会根据是否定义了UNICODE将宏进行替换,替换后的函数不是ANSI版本就是Unicode版本。函数末尾的

    A”代表“ANSI”,而“W”代表“Wide”。头文件中也分别包含了两种不同版本的函数原型声明:

     

        ANSI原型:

     

            BOOL WINAPI SetWindowTextA(HWND hWnd, LPCSTR lpString);

     

        Unicode原型:

     

    BOOL WINAPI SetWindowTextW(HWND hWnd, LPCWSTR lpString);

     

     

        下面是winuser.h头文件中SetWindowText函数的声明及宏定义:

     

    WINUSERAPI

    BOOL

    WINAPI

    SetWindowTextA(

        HWND hWnd,

        LPCSTR lpString);

    WINUSERAPI

    BOOL

    WINAPI

    SetWindowTextW(

        HWND hWnd,

        LPCWSTR lpString);

    #ifdef UNICODE

    #define SetWindowText  SetWindowTextW

    #else

    #define SetWindowText  SetWindowTextA

    #endif // !UNICODE

     

        注意,在使用字符串参数时,普通原型使用的是LPCTSTRANSI原型使用的是LPCSTR,而Unicode原型使用的是

    LPCWSTR

     

    我们通常在自己的程序中使用普通原型的函数,在需要的时候才定义UNICODE,此时将使用函数的Unicode版本。如果不定义UNICODE,则默认使用函数的ANSI版本。当然,我们也可以在调用函数时,直接显示地使用ANSI版本或Unicode版本,具体方法就是在普通原型的函数加上“A”或者“W”,但我不太提倡这样做,因为容易发生混淆。

     

    这种方法通常应用在使用字符串参数的函数中,一般情况下都是按正常的方式使用。什么是正常的方式?正常人用的都是正常的方式,你是正常人吗?呵呵。由于VB中使用的是Unicode,所以在VB中使用时一定要注意,我想熟悉VB的人这一点都很清楚。以“W”结尾的函数中的字符串参数均使用wide-character,即我们通常情况下看到的一个英文字符或一个汉字用2个字节存储,而有的函数是仅有Unicode版本的。

     

    MSDN开发文档中关于函数的说明部分都有一个QuickInfoQuickInfo中会说明该函数是否同时含有ANSI版本和Unicode版本。

     

     

    *-------------------------------------------*

    *  转载请通知作者并注明出处,CSDN欢迎您!   *

    *  作者:卢培培(goodname008              *

    *  邮箱:goodname008@163.com                *

    *  专栏:http://blog.csdn.net/goodname008   *

    *-------------------------------------------*

     

     

    发表于 @ 2004年07月14日 01:23:00|评论(loading...)|编辑

    新一篇: 剖析VC++函数调用约定 | 旧一篇: 用API播放音频及视频文件

    评论

    #zyl910 发表于2004-08-23 22:41:00  IP: 61.187.152.*
    暂时只有这些,以后可能会更多

    但也可能只有这几个
    需要自己手动实现GB18030<->Unicode转换
    比如MicroSoft在设计Windows9X平台支持的Unicode函数也只有几个
    #zyl910 发表于2004-08-23 21:22:00  IP: 61.187.152.*
    现在最新的Windows支持GB18030,将增加以“L”结尾的API专门处理GB18030字符串
    #goodname008(文章作者) 发表于2004-08-23 22:22:00  IP: 61.51.58.*
    是不是只有这些:
    ExtTextOutL
    Get4ByteCodePage
    GetTextExtentExPointL
    GetTextExtentPoint
    GetTextExtentPoint32L
    MessageBoxExL
    MessageBoxL
    Set4ByteCodePage
    TextOutL
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 卢培培