惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
G
Google Developers Blog
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
J
Java Code Geeks
U
Unit 42
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
N
Netflix TechBlog - Medium
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
Docker
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
V
V2EX
T
Tailwind CSS Blog

博客园 - 玛瑙河

用matplotlib绘制带误差的条形图及中英文字体设置 Python中用MacFSEvents模块监视MacOS文件系统改变一例 修改gnome-shell扩展“Applications Menu”的菜单区域宽度。 VirtualBox 4.3.18 启动虚拟机时显示不能加载 R3模块并退出故障解决一例 自定义IPython Qt Console 窗口大小、字体、颜色 Windows Server 2012 R2 两个奇葩问题的解决 cherokee +php fastcgi 出现 No input file specified 故障一例 ubuntu下从源码编译安装cherokee liftweb整合ckfinder进行文件上传与管理 命令行下多线程下载工具 Axel 2.4 for Windows 正确设置H2数据库的Collation解决中文排序问题 清除U盘子目录变成1K大小的快捷方式病毒的脚本 Scala 脚本的 pound bang 魔术 Google URL Shorter HTML中常用的特殊字符实体编码(Character entity references in HTML 4) - 玛瑙河 MrBayes v3.2 for windows 并行版下载及 checkpoint 功能介绍 强制垃圾回收解决.NET Office互操作中文件锁未能释放的问题 童言无忌之小瑈与甲虫 MrBayes v3.1.2 for windows 并行版下载
解决MASM编程对话框中文问题
玛瑙河 · 2011-09-08 · via 博客园 - 玛瑙河

由于MASM32中Dialog.inc文件中ustring宏有问题,导致用对话框相关的宏显示含有中文的对话框时出问题。原代码如下所示:

    ; ------------------------------------------------
    ; write unicode string at current location in EDI
    ; ------------------------------------------------
      ustring MACRO quoted_text
        LOCAL asc_txt
      .data
        asc_txt db quoted_text,0
      .code
        invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED,
               ADDR asc_txt,-1,edi,LENGTHOF asc_txt
        add edi, LENGTHOF asc_txt*2
      ENDM

  修改为以下后正常:

    ; ------------------------------------------------
    ; write unicode string at current location in EDI
    ; ------------------------------------------------
      ustring MACRO quoted_text
        LOCAL asc_txt,dwMinSize
      .data
        asc_txt db quoted_text,0
        dwMinSize dd 0
      .code
        invoke MultiByteToWideChar,CP_ACP,0, ADDR asc_txt,-1,0,0 
        mov dwMinSize,eax
        invoke MultiByteToWideChar,CP_ACP,MB_PRECOMPOSED, ADDR asc_txt,-1,edi,dwMinSize
        add edi, dwMinSize
        add edi, dwMinSize
      ENDM

  原理参见MSDN库中关于MultiByteToWideChar函数用法相关的资料。