c#调用c++ dll的一个例子

Advertisement

1.创建一个简单的c++ 项目生成动态库。

Vs 创建完工程后,打开SampleOperation.cpp文件,看到有个导出函数的例子。

复制这段代码, 修改函数(返回值, 参数列表, 函数的实现)

然后在sampleOperation.h头文件中添加这个函数(add).

生成成功后 打开目录可以看到这些文件。

2.创建c#程序。

把 刚才c++项目生成的sampleOperation.dll 复制到c#项目的bin/debug 下

运行c#的程序结果如下图:

Similar Posts:

  • Delphi 调用 C# Dll 时一个编译问题 mscorlib_TLB.h Ambiguity between 'String&

    I have written an Assembly that also exposed itself as a COM object using C#.NET. When I am trying to do "Import Type Library" from Delphi 6 Pro I am receiving these errors when trying to compile. [Error] mscorlib_TLB.pas(5194): Type'Byte'is not

  • 在 C# 中通过 P/Invoke 调用Win32 DLL

    ,.NET Framework 1.0 或 1.1 版类库中存在任何 Windows 所没有的功能限制都不足为怪.毕竟,32 位的 Windows(不管何种版本)是一个成熟的操作系统,为广大客户服务了十多年.相比之下,.NET Framework 却是一个新事物. 随着越来越多的开发人员将生产应用程序转到托管代码,开发人员更频繁地研究底层操作系统以图找出一些关键功能显得很自然 - 至少目前是如此. 值得庆幸的是,公共语言运行库 (CLR) 的 interop 功能(称为平台调用 (P/Invok

  • C#中使用DllImport调用C++dll

    为什么要在C#中调用C++的代码呢?比如我有一个C#项目要实现某种功能,同时我恰好有一个已经实现了这个功能的C++代码.我可以用C#重写一遍,当然如果工程比较大的话,用DllImport来调用C++的dll是一个更好的选择. 由于C++dll是非托管代码,我不能直接在C#工程中添加引用(会出错误提示).命名空间System.Runtime.InteropServices提供了DllImport Attribute来动态加载非托管dll. 示例一: C# [DllImport("D:/UnityS

  • [转]C#时常需要调用C++DLL

    在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返回字符串是,现总结一下,分享给大家: VC++中主要字符串类型为:LPSTR,LPCSTR, LPCTSTR, string, CString, LPCWSTR, LPWSTR等但转为C#类型却不完全相同. 主要有如下几种转换: 将string转为IntPtr:IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemAuto(string) 将

  • Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API)

    直接在程序中调用 ntdll.dll 中的 Native API,有内存小.速度快.安全.API丰富等8大优点 文章目录: 1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Application 有何妙用: 5. MJ0011 关于 Native Application 的文章整理: 6. 互联网上其他关于 Native Application 的文章整理: 7. 小结: 1. 引子: 其实在好久

  • 【JNI】OPUS压缩与解压的JNI调用(.DLL版本)

    OPUS压缩与解压的JNI调用(.DLL版本) 一.写在开头: 理论上讲,这是我在博客园的第一篇原创的博客,之前也一直想找个地方写点东西,把最近做的一些东西归纳总结下,但是一般工程做完了一高兴就把东西丢一边就很久不碰了,久而久之就淡忘了.这不是一个很好的习惯,古人也说更好记性不如烂笔头,无论是做学术还是做工程,定期总结与归纳都是一个不错的巩固与提高的方法.另外,也希望给后来者一点可行性的参考(有误导的地方请轻喷). 二.引言: 言归正传,最近在做Android的一个工程,大体是实现在Androi

  • 解开VC++调用.Net DLL的神秘面纱

    点击打开链接这段时间有个项目是需要使用vc++的程序访问.Net的类,在网上搜过很多文章,大致有两个方法: 将.Net程序编译成COM,并让C++代码访问COM组件进行调用. 另一个方法使用CRL编译选项,让.Net代码在CRL(公共运行语言)中管理,这样c++就可以方便的引用.Net的对象. C++是属于非托管类,而.Net是属于托管类.在运行库的控制下执行的代码称作托管代码,相反,在运行库之外运行的代码称作非托管代码.COM 组件.ActiveX 接口和 Win32 API 函数都是非托管代

  • java调用Jython函数的小例子

    写了一个java调用Jython函数的小例子: java 代码: public static void main(String args[]){ Hashtable table = new Hashtable(); table.put(new PyString("method"), new PyString("login")); table.put(new PyString("customerName"), new PyString("

  • c# 调用 C++ dll 传入传出 字符串

    C#调用 非托管C++ dll 传入Stringbuilder.ref string . ref char 等都报错,如mscorlib.dll 异常.其他信息: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏 等等,后来发现是dll 生成后一直没更新,放错位置了... = =|| 不过也学习了一下编译器及类型相关的知识,整理如下: 1. cl.exe /Gz 参数指定编译为 __stdcall 调用方式,默认为 __cdecl 2.C#中的char是两个字节 http://msdn.mi

  • PB7调用C# dll

    前段时间有个业务需求要在PB程序里上传文件到文件服务器(文件上传服务是个Java Web Service),由于PB7在调用Web service方面存在很多的弊端,而且极其不好用,所以决定用C#2005写个dll,给PB调用.PB通过调用c# dll实现文件上传.现在问题变成了PB如何调用C#写的dll和C#如何调用Java Web Service,由于C#调用Java Web Service很方便而且资料也很多,所以本文接下去只讨论PB如何调用C#写的dll? 1.C# dll制作 <!--

Tags: