test 记录我的第一个MASM dll 编译过程

文章目录

  • 前言
  • 一、VS CODE 插件
  • 二、测试代码
    • 2.CMakeLists.txt
  • 总结

前言

` 刚从CODEBLOCKS转到VSCODE, 虽然只有几天的时间, 但已经喜欢上了。
个人随笔 勿喷 。


一、VS CODE 插件

1: CMAKE
2: CMAKE TOOLS

二、测试代码

代码如下(示例):

     .386.model flat, stdcalloption casemap :none; include   windows.incExitProcess Proto exitCode:dword ; 测试使用的api
MessageBoxA Proto hWnd:dword, text:dword, title:dword, :dword
includelib kernel32.lib
.data.codeDllEntry proc hinstDLL:DWORD, fdwReason:DWORD, a3:DWORDmov eax, a3mov eax, hinstDLLmov    eax, fdwReasoncmp eax,1jnz DLL_THREAD_ATTACH
;-------------------------------;进程附加-----------------------------------
;                          DLL_PROCESS_ATTACH
;domov  eax,1retDLL_THREAD_ATTACH:cmp eax,2jnz DLL_THREAD_DETACHcall ExitProcess
;-------------------------------线程附加-----------------------------------
;                          DLL_THREAD_ATTACH    mov eax,1ret;DLL_THREAD_DETACH: cmp eax,3jnz DLL_PROCESS_DETACH
;-------------------------------线程卸载-----------------------------------
;                          DLL_THREAD_DETACH    mov eax,1ret;DLL_PROCESS_DETACH:cmp eax,4jnz _exit;-------------------------------进程卸载-----------------------------------
;                          DLL_THREAD_DETACH    _exit:mov   eax,0retDllEntry endpend DllEntry

2.CMakeLists.txt

代码如下(示例):

cmake_minimum_required(VERSION 3.0.0)
project(test VERSION 0.1.0)
enable_language(ASM_MASM) # 这里要使用ASM_MASM, 无这句, 编程通不过
add_library(${PROJECT_NAME}  SHARED test.asm) # STATIC == LIB SHARED == DLL


总结

整体的过程是:
1: F1 CMAKE:快速入门 (生成项目) -> 输入项目名 -> 点击 liibrary 或 Executable
2: 编写asm代码
3: 修改 CMakeTists.txt.
4:点击下方的 Build 构建生成

vs code masm dll相关推荐

  1. .NET不用代码生成器自己写一个生成Code的DLL 自动动态生成三层架构(一)概况...

    大家好,我是新灵感中的一个小灵感,今日有幸能在博客园写点自己的东西,非常的高兴,自己也从事这个职业差不多快4年了,一直没有怎么认真写过东西,非常的惭愧啊. 所以与其明天再写,还不如就从现在写起走,把自 ...

  2. DLL+ ActiveX控件+WEB页面调用例子

    因项目需要,开始学习并研究VC.DLL及ActiveX控件,网上资料找了很多,但没一个可用的或者说没一个例子可理解并运行的.没办法,自己研究吧.功夫不负有心人,终有小成了,呵呵,现在把自己学习总结了一 ...

  3. 将ocx和DLL文件打包成cab文件,inf的编写

    From: http://icrwen.iteye.com/blog/1118766 http://blog.csdn.net/yimiyangguang1314/article/details/65 ...

  4. Jawin –Java/Win32互动项目 可调用DLL及COM的调用项目

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Jawi ...

  5. c 内存加载易语言dll,[求助]MemoryLoadLibrary 加载MFC 易语言 DLL 失败

    [求助]MemoryLoadLibrary 加载MFC 易语言 DLL 失败 2011-10-6 13:32 13431 [求助]MemoryLoadLibrary 加载MFC 易语言 DLL 失败 ...

  6. managed code和unmanaged code混合debug

    首先: 1. managed code的项目属性中debug页里,"Enable unmanaged code debugging"选上. 2. unmanaged code项目属 ...

  7. java开发调用C语言的DLL

    通过Java调用OCX控件或者DLL有以下几种方法,使用JNI.JACOB.Jawin等技术完成接口调用: 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin ...

  8. 将ocx和DLL文件打包成cab文件,实现IE浏览器在线安装

    我们打开淘宝等网站时,IE浏览器会提示安装空间,这个控件便是用于对用户名密码进行加密的ActiveX控件.如何在我们的站点上安装如此控件,让用户可以通过简单的点击便可方便使用我们的空间呢? 下面是如何 ...

  9. 关于unity打包时出现插件DLL错误: The Assembly UnityEditor is referenced by Population解决方法

    文章目录 报错说明 解决方法 推荐阅读 报错说明 工程中使用的插件脚本引用了UnityEditor,但是该dll没有在Editor目录下,导致打包时报错: ArgumentException: The ...

  10. delphi dll创建及调用

    第一章 DLL简单介绍 由于在目前的学习工作中,需要用到DLL文件,就学习了下,在这里作个总结. 首先装简单介绍下DLL: 1,减小可执行文件的大小 DLL技术的产生有很大一部分原因是为了减小可执行文 ...

最新文章

  1. 16进制转char_常州市赛题解:小X转进制
  2. python如何更新包_python如何更新包 python更新包代码示例
  3. 计算机专业c语言题库,计算机专业C语言考试题.doc
  4. Node.js学习之路24——Express框架的app对象
  5. matplotlib调节colorbar的大小
  6. Java Vistor 设计模式
  7. linux 文件隐藏权限,linux文件基本权限、默认权限、隐藏权限和ACL权限
  8. android壁纸路径/目录
  9. C++操作符的优先级
  10. 数据库实验报告一-创建数据库和表
  11. 如何使用node批量修改文件后缀名
  12. 微信好友排行榜 最简教程 二
  13. 心形一行python_心的解释|心的意思|汉典“心”字的基本解释
  14. 栈的push,pop序列
  15. ubuntu / linuxmint 搜狗输入法安装后 fcitx configure找不到的解决办法
  16. JFreeChart饼图, java程序中加载宋体字库
  17. PL/SQL中存储过程int和out的用法
  18. kvm静态迁移error: Cannot access storage file
  19. 【笔记】火车,航班,车牌号正则表达式(附上测试链接)
  20. POJ3159 Candies(差分约束)

热门文章

  1. 黑马登录案例验证码无法正常显示原因
  2. 第六章 (数据库) 第3节 数据库高级
  3. 基于python语言设计的词云定制器
  4. 波司登 × 阿里云 × 奇点云:教科书式的数智化转型实践
  5. matlab计算单模光纤耦合效率的积分,用于光纤阵列耦合的微透镜阵列的设计和耦合效率的分析...
  6. 批量修改或删除多个 Word、PPT、Excel、PDF 和记事本文件中的多个关键字
  7. 了解BigDecimal常用坑,不迷路
  8. php codesniffer 代码规范,PHP_CodeSniffer自定义代码规范规则
  9. 【虚拟仿真】Unity3D中实现UI跟随3D模型旋转移动、UI一直面朝屏幕
  10. 删除鼠标右键菜单多余选项的方法