使用RadAsm设置dll共享段

本文介绍如何使用RadAsm设置DLL中的共享数据段,包括初始化和未初始化的数据段,并提供具体的编译和链接命令示例。

在使用RadAsm时,如果我们要设置一个dll共享段,例如设置.data?段为共享段。

可以在工程选项中添加

/SECTION:name,[E][R][W][S][D][K][L][P][X]

其中S表示共享,已初期化的段名是.data,未初始化的段名是.bss。假如您想要写一个包含钩子函数的

DLL,而且想使它的未初始化的数据段在所有进程间共享,您必须这么做:

写法如下:
/section:.bss|S  

不能写成,/section:.bss,S

但是您在makefile中可以这么写:

NAME = Hooker
OBJS = $(NAME).obj
RES   = $(NAME).res
DEF   = $(NAME).def
DLL_FILE = $(NAME).dll
CompilePath = C:/RadASM/masm32/

####################################################
# 创建共享数据段的DLL时使用的连接选项
# LINK_FLAG = /subsystem:windows /Dll /section:.bss,S
####################################################

#连接选项
LINK_FLAG = /SUBSYSTEM:WINDOWS /RELEASE /DLL /SECTION:.bss,S /DEF:$(DEF) /LIBPATH:$(CompilePath)/lib
#编译选项
ML_FLAG   = /c /coff /Cp /nologo /I"$(CompilePath)/include"


$(NAME).dll: $(OBJS) $(RES)
$(CompilePath)/bin/Link.exe $(LINK_FLAG) $(OBJS) $(RES) /OUT:$(DLL_FILE)
.asm.obj:
$(CompilePath)/bin/ml.exe $(ML_FLAG) $<
.rc.res:
$(CompilePath)/bin/rc.exe $<

clean:
del *.obj
del *.res

 

<think>好的,我现在需要处理用户关于RadASM文件关联功能的问题。首先,我得理解用户的问题是什么。用户提到在配置RadASM时遇到连接错误,无法正确添加链接选项,最终改用命令行工具,但想知道RadASM中文件关联的具体功能作用。 接下来,我应该回忆RadASM的相关知识。RadASM是一个基于MASM的集成开发环境,主要用于汇编语言开发。文件关联功能通常是指将特定文件类型与RadASM关联,以便在资源管理器双击这些文件时自动用RadASM打开。 然后,我需要验证文件关联的具体作用。可能包括:关联文件类型(如.asm、.inc)、设置默认编辑器、语法高亮和代码提示等。此外,可能还涉及自定义文件类型和关联外部工具,比如编译器或链接器。 用户还提到了在配置链接选项时出现问题,导致RadASM找不到文件。这可能与文件关联中的工程配置或路径设置有关。需要解释文件关联如何影响工程选项中的路径设置,特别是涉及DLL编译时的段配置(如.bss段共享),这可能需要在链接器参数中正确设置,而文件关联可能帮助自动应用这些参数。 需要确保回答符合用户的要求,结构清晰,分点说明,并引用用户提供的参考内容。用户提供的引用[1]提到了链接选项的问题,引用[2]是窗口样式,可能与当前问题无关,但需要确认是否有其他关联。 最后,生成相关问题时要围绕RadASM的文件关联、配置问题、工程设置和调试方法展开,确保问题有针对性,帮助用户进一步解决可能遇到的困难。</think>RadASM的文件关联功能主要用于管理开发环境中不同文件类型与编辑器行为的对应关系,其核心作用可分为以下几个层面: ### 一、文件关联的核心功能 1. **扩展名绑定** 将特定文件类型(如`.asm`、`.inc`、`.rc`)与RadASM建立默认关联,实现双击文件时自动启动RadASM加载文件[^2]。 2. **语法高亮配置** 通过`masm.api`等配置文件,为不同扩展名的文件加载对应的语法着色方案。例如: ```ini [.asm] Keywords=MASM ``` 这会为`.asm`文件启用MASM汇编语法高亮。 3. **编辑器行为定制** 通过`radasm.ini`配置文件设置不同文件类型的默认操作: ```ini [.def] Open=Text Editor Run=; ``` 表示`.def`模块定义文件默认用文本编辑器打开且无运行命令。 ### 二、工程配置关联 1. **编译链绑定** 在`工程选项->工具链`中设置不同文件类型的处理方式: - `.asm`文件关联ML.EXE编译器 - `.rc`文件关联RC.EXE资源编译器 - 通过`/section:.bss,S`等链接参数控制段属性(如用户所述共享.data段配置)[^1] 2. **路径解析** 文件关联包含的`包含目录`设置直接影响编译器查找头文件的过程,错误配置会导致`无法找到包含文件`的错误。 ### 三、调试相关关联 在`调试器设置`中绑定`.dbg`符号文件与调试器的关联关系,确保启动调试时能自动加载符号信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值