
将头文件 .h 转换为对应的 .inc 文件是编程过程中的一项重要任务。
新建一个桌面向导,以便于后续操作。
生成文件后,需打开 rc 文件,并确保其正确转换为所需的格式。
在编译链接文件时,需将资源文件加入其中,以确保编译过程的顺利进行。
接下来会涉及到汇编代码的编写以及静态库的使用。
从技术层面来看,C语言和汇编语言的语法并不兼容。直接在源代码层面进行两者之间的调用是不可能的。但我们可以采用折衷的办法,即使用 obj 文件。将 C 的 obj 文件提供给汇编程序使用,同时将汇编的 obj 文件供 C 程序使用。
查看生成的 obj 文件,我们可以确认函数的名称,并进行相应的调用。
创建一个 32 位的桌面应用程序是接下来的步骤之一。
将生成的 obj 文件复制到工程目录下,并导入 .bobj 文件。
在操作过程中,需注意去掉预编译头,以避免不必要的干扰。
确保汇编生成的 obj 文件被正确放入项目中,并与之对应地使用 C 语言生成的 obj 文件。
进一步的解决办法包括调整开发环境,比如将 vs 或 vc6 的 lib 加入环境变量,以便于项目的顺利编译。
在 vs 项目中添加一个如 Func.c 的文件,并编写相应代码,然后生成解决方案。
确保 obj 文件被放置在正确的目录下,以便于项目的编译和链接。
若在编译链接过程中遇到外部符号找不到的问题,这通常是因为缺少必要的库。解决办法是将这些库加入项目中,或者使用 vs 的命令提示符进行操作。为提高效率,推荐使用 dll(动态链接库)。
dll 的接口是标准的,自其出现以来基本没有变化。这为我们提供了极大的便利。
利用 vs 创建一个动态链接库,并导出所需的函数。
将生成的 dll 和 lib 文件放置在汇编代码的同目录下。
C 语言可以使用汇编的 dll,注意字符集的匹配。
汇编代码也可以编写成 dll 的形式。在编写时,需注意指令的使用,如 .386、.model flat、stdcall 等,以及 casemap、include 等指令的使用。
为使 dll 被正确使用,需要新建一个 def 文件来导出函数。
当 dll 和 lib 文件被正确生成并放置后,就可以在 c、c++ 程序中使用了。
在编写内联汇编代码时,需要注意部分伪指令的使用仅限于 32 位程序。64 位程序不支持内联汇编。
若需将某个函数注入到对方进程中,应编写纯汇编代码。使用 vs 编写的代码会添加额外的检查,这可能会影响注入的效果。
汇编版俄罗斯方块的相关资源已附在文件中。
