C++调用C#DLL并调试
使用C++ 来调用C#DLL 并且调试程序
环境:使用VS studio 2019
C#项目的设置
1、C# -> 属性 -> 应用程序 -> 目标框架 ->.NET Framework 4

2、C# -> 属性 -> 调试 -> 调试程序引擎 -> 勾上 启用本地代码调试

3、C# -> 属性 -> 生成 -> 输出 -> 勾上 为COM互操作注册

C++项目的设置
1、首先创建一个C++的控制台程序,下面我们将在C++项目中修改
2、使用#using 来添加DLL 示例:#using "hhhh.dll"
3、项目->属性-> C/C++ -> 命令行 ->其他选项 添加:/Zc:twoPhase-

4、项目->属性->配置属性->高级->C++/CLI属性 -> 公共语言运行时支持 选择 公共语言运行时支持(/clr)

5、C/C++ -> 常规 -> 调试信息格式 -> 选择 程序数据库(/Zi)

注意
1、^这个符号是使得托管和非托管代码混合开发更加方便
下面是一个小的demo
// MyDLLResult.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include <iostream>
#using "hhhh.dll"
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
using namespace hhh;
using namespace std;
int main()
{
hhh::hhh^ api = gcnew hhh::hhh();
char strhhh[]{ "123456789" };
String^ hhhh = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)strhhh);
char strOhhh[]{ "hhhhh" };
String^ hhhhh = System::Runtime::InteropServices::Marshal::PtrToStringAnsi((IntPtr)strOhhh);
String^ Restlt = api->ORBIC_TAB_CUSTOMIZATION_INFO_GET(hhhh , hhhhh );
char* outStr = (char*)Marshal::StringToHGlobalAnsi(Restlt).ToPointer();
cout << "outStr:"<<outStr <<endl;
cout << "Hello World!\n";
}
``
C++调用C#DLL并调试的更多相关文章
- 在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
from:http://m.blog.csdn.net/article/details?id=51075023 在VS2015中先创建C#项目,然后再创建要编写的动态库DLL项目,这样做的好处是整个解 ...
- 在VS2015中用C++创建DLL并用C++调用且同一时候实现对DLL的调试
一:用C++创建DLL 依照[在VS2015中用C++编写可被其他语言调用的动态库DLL]提示创建C++编写的DLL.或參考[在VS2015中用C++创建DLL并用C#调用且同一 ...
- 用C#调用C++DLL(x64),总是提示找不到DLL
用C#调用自己写的C++ DLL(x64),总是提示找不到DLL,调试可以,发布release老是提示找不到DLL(dll文件确定存在) 原因:Visual C++的DLL分发方式没选:调试默认选择: ...
- C#调用C++ Dll
现在项目基本都是旁边C++的哥们做好dll扔给我,然后我调用.好久之前晚上down了一份c#调用c++dll的方法,出处早已经遗忘.闲来无事,放上来好了.原作者看到后可以留言,我会把您链接放上的,帮了 ...
- 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)
OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西 ...
- C#中调用unmanaged DLL
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- c#调用c++ dll(二)
当对c++几种调用方式有了解以后我们可以试着写个c++动态连接库了,我们现在来写个简单的c++求和函数并把它封装成dll,供以后的c#调用 我们写dll的时候,个人认为,要写就要把dll写好,写标准, ...
- Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)
文章目录: 1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...
- VS2012 C#调用C++ dll
VS2012 C#调用C++ dll 调试方法:[dll工程和调用dll的exe工程在同一个解决方案中]dll工程,属性-配置属性-调试-把 命令 为 调用该dll的exe工程的bin\Debug\* ...
- 利用OllyDebug查看程序调用的dll模块
最近在做一个Qt项目,在产品发布的时候一直为找不到程序到底缺少了哪些dll组件而困扰.具体问题是,在我的项目中使用到了QMediaPlayer播放一段音频文件,我使用的开发环境的Win7 32位,而在 ...
随机推荐
- [WPF]数据绑定失效的问题
有可能的原因如下: 绑定的属性一定是属性而不能是字段,比如: public int data; 是无法生效的,而 public int data {get;set;} 这样才能生效
- P5380 [THUPC2019]鸭棋
题面 查看题面 题目背景 鸭棋是一种风靡鸭子界的棋类游戏.事实上,它与中国象棋有一些相似之处,但规则不尽相同.在这里,我们将为你介绍鸭棋的规则. 鸭棋在一个 \(10\times 9\)(\(10\) ...
- 安装Ubuntu系统到中国移动电视盒子
根据B站的视频资料,貌似这个盒子的性价比要比树莓派高一些,所以做了这个安装实验.新年伊始,armbian库也加紧升级,感觉大家都在想尽一切办法告别3年疫情给大家带来的伤害. B站视频推荐把系统安装在盒 ...
- echarts图表配置
1.柱状图 option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] ...
- NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)
NLP知识图谱项目合集(信息抽取.文本分类.图神经网络.性能优化等) 这段时间完成了很多大大小小的小项目,现在做一个整体归纳方便学习和收藏,有利于持续学习. 1. 信息抽取项目合集 1.PaddleN ...
- Unity - 自定义Log
嗨,崽崽们大家好.实在是不知道写个啥了,最近总是恍惚,今儿偷个懒吧,给大家推荐一个小黑自己写的小型日志工具,在一些小项目中管够使用了. 那有人会问了,Unity不是自带日志么,为什么还要自己做个小工具 ...
- 【随笔记】Littlevgl 8.x 踩过的坑
在多线程并发使用的时候,总是在运行过程中莫名其妙的 crash,后面才意识到 LVGL 本身不支持并发,加了互斥锁解决了. 在引入矢量字库时(freetype),又有启动时会概率性 crash 的问题 ...
- Nacos配置中心 (介绍与配置)
Nacos配置中心 当微服务部署的实例越来越多,达到数十.数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错.我们需要一种统一配置管理方案,可以集中管理所有实例的配置. Nacos一方面可以将配置 ...
- Android IO 框架 Okio 的实现原理,到底哪里 OK?
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 前言 大家好,我是小彭. 今天,我们来讨论一个 Square 开源的 I/O 框架 Okio,我们最开始接触 ...
- 关闭Vim 的蜂鸣 | 解决Vim在Git BASH闪砾的问题
set vb t_vb= 这个设置屏蔽了vim遇到无效命令时发出的蜂鸣声,而用一个快速的闪烁取而代之.