C#调用C++DLL的小总结5---和C++的DLL的联合调试

http://fpcfjf.blog.163.com/blog/static/5546979320134922938373/

http://blog.csdn.net/jiangxinyu/article/details/7848015

关于托管平台和非托管平台的经验,现在有一个问题,就是如果调用C++的DLL,复杂一些的数据传递,或者DLL将数据再传递。

调试下断点看内存中的数据是最好的方法,由于C#是在托管平台上的,而C++DLL是在非托管平台上的。内存的格式有所不同,为此微软已提出相关解决方案:

第一步:在C#的解决方案上右键“属性”---“调试”---勾选“启用非托管代码调试”。

第二步:同样的在“调试”选项下---“启动选项”---“工作目录”,然后点击下图中的箭头指向的按钮,在弹出的对话框中,指定C++DLL的生成目录(即xx.lib xx.dll所在的路径)

第三步:启动C#的EXE,下断点调试即可

时间: 2024-08-02 22:49:33

C#调用C++DLL的小总结5---和C++的DLL的联合调试的相关文章

校园网小蝴蝶运行显示:缺少packet.dll文件

一.校园网小蝴蝶修复: 打开C盘下sinf文件,点击WinPcap_4_1_3.exe文件进行安装. 二.如果是其他游戏或软件,修复方法: 1.网上搜索packet.dll文件并下载. 2.把packet.dll文件复制到系统文件目录.(路径一般为:32位--C:\WINNT\System32,64位--C:\Windows\SysWOW64) 3.点击"开始菜单-->运行-->输入:regsvr32 packet.dll",回车(或点击"确定")即可.

(转载)DLL动态链接库编程入门之五:MFC扩展DLL

MFC扩展DLL的内涵为MFC的扩展,用户使用MFC扩展DLL就像使用MFC本身的DLL一样.除了可以在MFC扩展DLL的内部使用MFC以外,MFC扩展DLL与应用程序的接口部分也可以是MFC.我们一般使用MFC扩展DLL来包含一些MFC的增强功能,譬如扩展MFC的CStatic.CButton等类使之具备更强大的能力. 使用Visual C++向导生产MFC扩展DLL时,MFC向导会自动增加DLL的入口函数DllMain: C++代码 extern "C" int APIENTRY

(转载)DLL动态链接库编程入门之三:MFC规则DLL(上)

上一节中讲解了非MFC DLL,本节将介绍如何创建MFC规则DLL及使用MFC规则DLL的方法. 一.MFC规则DLL概述 MFC规则DLL的概念体现在两方面: (1)它是MFC的 "是MFC的"意味着可以在这种DLL的内部使用MFC: (2)它是规则的 "是规则的"意味着它不同于MFC扩展DLL,在MFC规则DLL的内部虽然可以使用MFC,但是其与应用程序的接口不能是MFC.而MFC扩展DLL与应用程序的接口可以是MFC,可以从MFC扩展DLL中导出一个MFC类的

lib,dll区别 及 VS中如何添加lib,dll

1.加载lib/头文件 分两种方法: (1)适用于当前项目 1 第一步:项目->属性->C/C++->常规->附加包含目录(浏览.h文件的路径) 添加包含文件 2 第二步:项目->属性->C/C++->链接器->输入->附加依赖项(写入lib的名称) 添加库文件 3 项目->属性->C/C++->链接器->输入->附加依赖项 添加用到的lib 4 第三步:在要使用cpp文件前加入 #include <gtest/gt

四种DLL:NON-MFC DLL, Regular DLL Statically/Dynamically Linked to MFC, MFC Extension DLL

参考资料: https://msdn.microsoft.com/en-us/library/30c674tx.aspx 在上面给出的MSDN链接中,你可以看到四种DLL的定义.这里就不赘述.捡重点的说 区别就在于: NON-MFC DLL内部不能使用MFC(当然其导出的API也不能涉及MFC).(这里我说“导出的API”是指导出的C函数.C++类或者共享的全局变量等等) Regular DLL Statically/Dynamically linked to MFC内部可以使用MFC,但是其导

转一篇DLL逆向的文章,适用于一般的dll逆向

转一篇DLL逆向的文章,适用于一般的dll逆向,我使用的库是一组DLL,都有强签名,如下方法不适合,编译会提示强签名错误. C# 带签名dll破解 Mar 9, 2016 | C# | 84 Hits 转自 http://blog.fwhyy.com/2016/03/csharp-with-signature-dll-crack/?utm_source=tuicool&utm_medium=referral 暂无评论 首先申明,本文只是从技术的角度来分析下怎样破解带签名的C#写的dll文件.大家

引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用。请确保此文件可访问并且是一个有效的程序集或COM组件

出现这个问题,是由于使用了非.NET 的动态链接库,需要注册 方法如下: 1.在搜索程序和文件中使用 regsvr32 "D:\Projects\8.01.01.03-重庆大足\lib\ValidateServerRelease32.dll" 命令就可以了 引用动态链接库Dll文件 引用失败 未能添加对HD.dll的引用.请确保此文件可访问并且是一个有效的程序集或COM组件

在C#调用C++的DLL方法(二)生成托管的DLL

写操作之前,还是扼要的说一下托管与非托管C++的区别好了,其实我也并没有深入了解过托管C++的特点所在,其最大的特征就是可以由系统来调试回收相关的代码资源,跟C#的特性一样,只是编程风格跟C++类似而已,因此,这决定了C#与托管C++是可以完美结合在一起的.托管C++生成的dll跟C#生成的dll应该说是没区别的,之所以产生托管C++这种怪物,完全是因为微软在极力推崇C#,必须要兼顾不同语言间交互. 好吧,接下来正经的写一下过程.先摆出目的:我手上有一个C++写的类(NativeClass),想

在C#调用C++的DLL方法(一)生成非托管dll

C#与C/C++相比,前者的优势在于UI,后者的优势在于算法,C++下的指针虽然恶心,若使用得当还是相当方便的,最重要的问题是,市面上很多流行的开发工具库,几乎没有不支持C++的,但全面支持C#只能说是难得.在CPU发展到今天,若说C#的执行效率跟C++相比有很大的差距,并不是那么靠谱,若非万不得已我还是宁愿用C#来写代码,调试什么的也很方便. 不得已的情况下,要在C#下使用C++的函数或类,最好的方式就是使用动态链接库(dll),至于COM什么的我是至今没弄明白其原理,也许主要是因为使用起来太