C#的调一个C++的DLL, 也好像是一个C++ COM

问题描述

大家好,我是做C#的,项目用到一个C++的DLL,但是一直调用不到这个DLL的方法,后来听说这个DLL要加上_declspec,但有没有DLL的源码和lib,那我要怎么给它加?好像是要新建一个DLL,再调用原来的DLL,是吗,?怎么实现。更多0

解决方案

解决方案二:
dllimport看看好不好用
解决方案三:
DLLImport加载这个dll然后重新生命他里面的方法,但是不实现然后调用
解决方案四:
引用楼主illos的回复:

大家好,我是做C#的,项目用到一个C++的DLL,但是一直调用不到这个DLL的方法,后来听说这个DLL要加上_declspec,但有没有DLL的源码和lib,那我要怎么给它加?好像是要新建一个DLL,再调用原来的DLL,是吗,?怎么实现。更多0

有dll的.h文件就够了对应结构体和函数,使用DllImport就可以但有个前提,这个C++的Dll必须依据定义了__declspec(dllexport)以纯c的方式提供,如果是类,那是没办法直接调用的
解决方案五:
3楼+1啊必须先区分dll中是以C++的类为接口提供的,还是以标准的C方式提供。1.如果是C的方式,那就在C#里定同样的结构体、方法等,通过dllimport的方式直接定义就好。2.如果是C++类的方式,那就不行了,用C++再写一个dll,在这个dll里调用,然后以简单的数据类型和C的方式导出函数,再使用1的办法去调用。可以使用DependencyWalker这个软件看看你的dll是不是标准的C方式导出

时间: 2024-09-13 22:03:22

C#的调一个C++的DLL, 也好像是一个C++ COM的相关文章

用VB生成DLL封装ASP代码一个例子:连接access数据库等

access|封装|数据|数据库 封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升.这个例子中被封装的dll文件可以隐藏access数据库的实际路径. VB生成的DLL封装ASP代码来连接数据库(Access). 本文用一个最简单的连接access数据库的例子来说明如何将asp代码封装为dll文件. 我们用vb,最常见的方式来封装asp代码. 我们需要封装的对象如下: 'Proconn.aspdim ProConnset ProConn=Server.CreateO

net-怎么把一个DLL打包到另一个dll?

问题描述 怎么把一个DLL打包到另一个dll? 假如有A.DLL 和 B.DLL,怎么把A.DLL打包到B.DLL中,然后在C项目中只需要引用B.DLL就可以的,有木有高手回答一下,感谢. 解决方案 如何调试一个DLL项目一个完整的DLL远程注入函数C++如何写一个简单的DLL文件 解决方案二: 不能,因为dll就是动态连接的,你就算再封装一次,那么调用时虽然调用的b.dll,但是b.dll需要a.dll,所以同时需要两个dll. 一种折中的方法是把把a.dll插入b.dll的末尾,b.dll加

C#开发ActiveX求助...引用了一个第三方的dll,编译通过了。安装调用的时候调用不到这个dll

问题描述 C#开发ActiveX求助...引用了一个第三方的dll,编译通过了.安装包制作安装,通过ie调用的时候调用ActiveX没有引用到第三方dll的方法都可以正常使用,引用到第三方dll的方法调用都没反应,感觉是第三方dll没有加载到,但是我dll跟ActiveX放的同个目录,网上找了好多方法,试过把第三方dll复制到windows.system32.浏览器根目录下都没有用.请高手指点. 解决方案 解决方案二:注册全局的DLL写ActiveX的时候用动态引用之类的都可以解决....以前碰

c++-请教:一个完整的C++程序如何提供一个接口给其他软件使用

问题描述 请教:一个完整的C++程序如何提供一个接口给其他软件使用 如题.我用C++做了一个软件,现在想提供一个dll给另一个软件使用.要如何做?是直接在这个C++程序上做接口,还是另外建一个工程来生成dll? 请教大神们啦~谢谢 解决方案 要看另一个软件是需要如何和你的程序交互. 用到你程序的一部分,那么开放dll 只是传递数据的话,提供数据传递的标准,让它自己实现 希望整体嵌入你的程序,那么你实现一个OLE Server,让它用OLE Container嵌入你的程序. 如果那个程序不在本地,

做了一个wcf的小例子,遇到一个奇怪的问题,传送大数据量总出错

问题描述 各位老大,今天做了一个wcf的小例子,遇到一个奇怪的问题,每次传送大数据量总报错,传送了10000个对象,一个对象里面有6个字符串,按理说应该可以传2G的,实在找不到原因...哪个老大对wcf比较熟悉,帮看下报错:格式化程序尝试对消息反序列化时引发异常:尝试对参数http://tempuri.org/进行反序列化时出错:GetAllBooksResult.InnerException消息是"对象图中可以序列化或反序列化的项目数目上限为"65536".请更改对象图或增

excel通过VLOOKUP函数从一个表中取数到另一个表

  Excel表格处理数据的功能很强大,工作中,经常需要从数据库文件中查找索引数据到另一个文件中,如何实现这个引用?通过VLOOKUP函数,就可以轻松做到. VLOOKUP函数是一个纵向查找函数,用于按列进行查找索引数据.我们根据需求,进行设定就能快速完成. 步骤 打开电脑,点开Excel,打开数据库文件和需要引用数据的文件. 现以一份电子账册的料件为例:企业在海关备案了552个不同的商品,这552个"商品名称"有"备案序号",另一份料件表文件只有"备案序

图片压缩-如何判断一个JPEG2000的文件中的每一个packet?

问题描述 如何判断一个JPEG2000的文件中的每一个packet? 最近在研究JPEG2000的图像格式,我发现一个问题.现在到这里来问问一下大神. 从理论上将,JPEG2000的image只要一些最基本的数据不丢失的话,其它部分的数据丢失的话,是不会影响太大的(除了resolution和qunlity的). 但是现在我想知道的问题是,我手头里有一个JPEG2000的格式的文件,我该如何知道它的哪一部分的数据是可以丢掉的啊? 解决方案 http://wenku.baidu.com/link?u

求一个加上100后是一个完全平方数,再加上168又是一个完全平方数的整数

查看全套"c语言习题集" 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果.请看具体分析: 2.程序源代码: #include "math.h"#include "stdio.h"#include "conio.h"main(){ long int i,

sql server 2008如何根据一个表中数据去查询另一个表的数据?

问题描述 sql server 2008如何根据一个表中数据去查询另一个表的数据? 现在我有三个表,表A有11列,其中有一列用来记录员工的id,一列是记录类型的Id,现在我要查询出表A的所有数据,但同时我要通过员工的id去查询出表B的员工名,通过类型的id,去查询出表C中的类型详情,最后我要得到的数据就是表A中除了员工id和类型id的数据外的9列数据,加上表B的员工名和表C的类型详情,请问这样的SQL语句要如何写? 解决方案 用一个表的数据更新另一个表Sql ServerSQL server中将