| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2294 人关注过本帖
标题:问个很基础的问题,怎么定义unicode,是编译的时候messageboxex的地址编译成 ...
取消只看楼主 加入收藏
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
问个很基础的问题,怎么定义unicode,是编译的时候messageboxex的地址编译成messageboxexw的地址
,如题,定义unicode的代码不会写,自己反汇编后总是messageboxexa

[ 本帖最后由 hcksfch 于 2012-9-30 21:30 编辑 ]
搜索更多相关主题的帖子: 基础 
2012-09-30 21:28
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 2楼 zklhp
用user32.inc里的定义和条件汇编实现要怎么用?



[ 本帖最后由 hcksfch 于 2012-9-30 21:37 编辑 ]
2012-09-30 21:32
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 4楼 zklhp
我的意思是:我不会用通过定义unicode来使编译器将messageboxex自动转换为messageboxexw,不考虑转换后乱码。masm32编译器,
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 3rd Edition>
; by 罗云彬, http://www.
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Test.asm
; 编程环境测试代码
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .386
        .model flat,stdcall
        option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
__UNICODE__=1  ;这个代码没用
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .const
szCaption    db    '恭喜',0
szText        db    '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
start:
        invoke    MessageBoxEx,NULL,offset szText,offset szCaption,MB_OK,NULL
        invoke    ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end    start


[ 本帖最后由 hcksfch 于 2012-9-30 21:46 编辑 ]
2012-09-30 21:43
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 6楼 zklhp
这是masm32中的定义,我该怎么用呢,多谢了
程序代码:
MessageBoxA PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD
IFNDEF __UNICODE__
  MessageBox equ <MessageBoxA>
ENDIF
MessageBoxExA PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
IFNDEF __UNICODE__
  MessageBoxEx equ <MessageBoxExA>
ENDIF
MessageBoxExW PROTO STDCALL :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
IFDEF __UNICODE__
  MessageBoxEx equ <MessageBoxExW>
ENDIF
2012-09-30 21:52
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
罗云彬的win32刚看到开头就蒙了
2012-09-30 21:58
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 9楼 zklhp
那要怎么用,我不知道怎么定义unicode
2012-09-30 22:01
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
以下是引用zklhp在2012-9-30 21:59:42的发言:


对于这个 应该用

__UNICODE__ equ 1

等来实现 等号和equ不大一样

即使这样我还是不大看好这个特性 中文支持是硬;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Sample code for < Win32ASM Programming 3rd Edition>
; by 罗云彬, http://www.
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Test.asm
; 编程环境测试代码
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 使用 nmake 或下列命令进行编译和链接:
; ml /c /coff Test.asm
; rc Test.rc
; Link /subsystem:windows Test.obj Test.res
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .386
        .model flat,stdcall
        option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include        windows.inc
include        user32.inc
includelib    user32.lib
include        kernel32.inc
includelib    kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
__UNICODE__ equ 1
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .const
szCaption    db    '恭喜',0
szText        db    '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        .code
start:
        invoke    MessageBoxEx,NULL,offset szText,offset szCaption,MB_OK,NULL
        invoke    ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
        end    start

这个不管用,;结果ollydbg看的还是messageboxexa,而且运行结果没乱码。
2012-09-30 22:17
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 18楼 zklhp
放在前面也不管用
ml版本,6.14.8444

[ 本帖最后由 hcksfch 于 2012-9-30 22:39 编辑 ]
2012-09-30 22:34
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
回复 17楼 有容就大
不会呀,我菜鸟一个
2012-09-30 22:37
hcksfch
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-9-30
收藏
得分:0 
要不你们把代码复制过去自己试试,是不是我的编译器设置错了
2012-09-30 22:45
快速回复:问个很基础的问题,怎么定义unicode,是编译的时候messageboxex的地址 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved