返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >vs2022 x64 C/C++和汇编混编(案例代码)
  • 934
分享到

vs2022 x64 C/C++和汇编混编(案例代码)

vs2022 x64 汇编vs2022 x64 C++  汇编vs2022 C++ 2023-02-24 17:02:39 934人浏览 薄情痞子
摘要

目录vs2022环境x64 C/C++和汇编混编1、新建空的win32项目,新建main.cpp,示例代码如下2、新建asm64.asm汇编源文件,示例代码如下3、编译器配置,选择x

vs2022环境x64 C/c++和汇编混编

vs64位程序不支持__asm内嵌汇编,需要单独编写汇编源文件

示例如下

1、新建空的win32项目,新建main.cpp,示例代码如下

#include <windows.h>

extern "C" void  __stdcall asm_func(const char* lpText);

extern "C" UINT GetMsgBoxType()
{
	return MB_YESNOCANCEL;
}

int main()
{
	asm_func("Hello world!");
	return 0;
}

2、新建asm64.asm汇编源文件,示例代码如下

.data

	msGCaption  db 'Message box text',0

.code 
align 16

extern GetMsgBoxType : proc
extern MessageBoxA : proc
extern __imp_MessageBoxA : qWord


asm_func proc
	; RCX = address for the string for the message box
	sub		rsp, 28h		; shadow stack only [n]8 size
	
	lea		rdx, [msgCaption]
	mov		r8, rcx

	call	GetMsgBoxType
	mov		r9, rax
	xor     rcx, rcx
	
	;call	[__imp_MessageBoxA]
	call MessageBoxA

	add		rsp, 28h		; restoring shadow stack
	ret
asm_func endp

end

3、编译器配置,选择x64,debug或者release都可以,

3.1 右键项目 --> 生成依赖项 --> 生成自定义 --> 勾选masm

在这里插入图片描述

在这里插入图片描述

3.2 右键汇编源文件 --> 属性 --> 常规 --> 项类型 --> Microsoft Macro Assembier

在这里插入图片描述

在这里插入图片描述

4、直接生成即可

在这里插入图片描述

到此这篇关于vs2022 x64 C/C++和汇编混编的文章就介绍到这了,更多相关vs2022 x64 汇编内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vs2022 x64 C/C++和汇编混编(案例代码)

本文链接: https://lsjlt.com/news/197488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vs2022 x64 C/C++和汇编混编(案例代码)
    目录vs2022环境x64 C/C++和汇编混编1、新建空的win32项目,新建main.cpp,示例代码如下2、新建asm64.asm汇编源文件,示例代码如下3、编译器配置,选择x...
    99+
    2023-02-24
    vs2022 x64 汇编 vs2022 x64 C++  汇编 vs2022 C++
  • vs2022 x64 C/C++和汇编混编实例代码分析
    本文小编为大家详细介绍“vs2022 x64 C/C++和汇编混编实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“vs2022 x64 C/C++和汇编混编实例代码分析”文章能帮助大家解决...
    99+
    2023-07-05
  • C与汇编混合编程的实现示例
    目录1. C语言内联汇编2. C语言调用汇编函数3. 汇编代码调用C语言函数上一期中,使用链表的方式进行对不同任务的调用,实现的效果还是不错的,但是,任务在进行过程中不能进行来回的切...
    99+
    2024-04-02
  • c/c++单例模式类的混合编译案例详解
    目录C/C++混合编译解决方案:中间层调用log案例解决方案:源代码C/C++混合编译 难点:c++支持重载,因此g++编译后的函数名有额外信息,在gcc编译的c文件中无法识别符号,...
    99+
    2024-04-02
  • C语言如何与ARM汇编语言混合编程示例详解
    目录一、ARM汇编语言简介二、C语言调用汇编语言1.无参数调用2.有参数调用三、汇编语言调用C语言四、总结五、参考文献主要使用软件:keiL μVision5 一、ARM汇编语言简介...
    99+
    2024-04-02
  • C++代码编写举例分析
    本篇内容主要讲解“C++代码编写举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++代码编写举例分析”吧!C++代码如下://log.h   #ifndef...
    99+
    2023-06-17
  • C++内嵌汇编示例详解
    目录汇编语言汇编语言的特点1.内嵌汇编介绍2.汇编版本Hello, World!3.内联汇编A+B汇编语言 汇编语言是一种功能很强的程序设计语言,也是利用了计算机所有硬件特性并能直接...
    99+
    2024-04-02
  • 如何在GO中生成混合源代码和汇编列表?
    知识点掌握了,还需要不断练习才能熟练运用。下面编程网给大家带来一个Golang开发实战,手把手教大家学习《如何在GO中生成混合源代码和汇编列表?》,在实现功能的过程中也带大家重新温习相关知识点,温故...
    99+
    2024-04-05
  • c++求和代码如何编写
    以下是一个简单的C++代码示例,用于计算从1到n的所有整数的和: #include int main() { int n...
    99+
    2023-10-26
    c++
  • C++和C的混合编译的项目实践
    目录简介某企业曾经给出如下的一道面试题问题分析关于 extern “C”extern关键字用法举例静态库是什么创建C静态库尝试使用C++程序调用C静态库创建C...
    99+
    2024-04-02
  • Python 和 C++ 混合编程:pybind11 使用
    Python 和 C++ 混合编程:pybind11 使用 1. 目的需求2. pybind 11 简介3. 使用实践:一个简单的实例3.1 开发环境3.2 准备工作3.3 建立工程 test...
    99+
    2023-09-09
    python c++ 开发语言
  • C++内嵌汇编的示例分析
    这篇文章主要为大家展示了“C++内嵌汇编的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C++内嵌汇编的示例分析”这篇文章吧。汇编语言汇编语言是一种功能很强的程序设计语言,也是利用了计算...
    99+
    2023-06-28
  • C++代码编制和语句序列举例分析
    这篇文章主要讲解了“C++代码编制和语句序列举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++代码编制和语句序列举例分析”吧!调试标记 适用预处理#define定义一个或多个调试标...
    99+
    2023-06-17
  • Python和C++的混合编程(使用Bo
      想要享受更轻松愉悦的编程,脚本语言是首选。想要更敏捷高效,c++则高山仰止。所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中。原来贡献过一篇《c++和js的混合编程》也是同样的目的。   得益于机器学习领域的发展,...
    99+
    2023-01-30
    Python Bo
  • 使用C#编译器编译代码
    要使用C#编译器编译代码,可以使用命令行工具csc.exe(C#编译器),或者使用集成开发环境(IDE)如Visual Studio...
    99+
    2023-09-08
    C
  • 详解如何实现C++虚函数调用汇编代码
    虚函数(代码段地址)被存放在虚函数表中,调用虚函数的流程是这样子的:先获取虚函数表的首地址,然后根据目标虚函数在虚函数表的位置(offset偏移)取出虚函数表中的虚函数地址,最后去c...
    99+
    2024-04-02
  • CLion 2019 for Mac(C和C ++ IDE智能代码编辑器)
    CLion 2019 for Mac是一款专为开发C及C++所设计的跨平台IDE智能代码编辑器。CLion Mac版是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的ID...
    99+
    2024-04-02
  • C#中的Task.Delay()和Thread.Sleep()区别(代码案例)
    一、简介 1.Thread.Sleep()是同步延迟,Task.Delay()是异步延迟。 2.Thread.Sleep()会阻塞线程,Task.Delay()不会。 3.Threa...
    99+
    2024-04-02
  • 怎样进行C++代码编制
    本篇文章为大家展示了怎样进行C++代码编制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对***次接触到C++代码编制的用户和学者来说,了解C++语言的概念是非常重要的,那么就先说一下什么是C++语...
    99+
    2023-06-17
  • JavaScript、C#中URL编码和解码的示例分析
    这篇文章主要为大家展示了“JavaScript、C#中URL编码和解码的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript、C#中URL...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作