c# 导入c++ dll
1.类的函数的内联实现
#include "stdafx.h"
#include "testdll.h"
#include <iostream>
#include "testdll.h"
using namespace std;
#ifndef TestDll_H_
#define TestDll_H_
#pragma once
#define DLL_EXPORTS
#ifdef DLL_EXPORTS
//#define DLL_API extern "C" __declspec(dllexport)
#define DLL_CLASS __declspec(dllexport)
#else
/*#define DLL_API extern "C" __declspec(dllimport) */
#define DLL_CLASS __declspec(dllimport)
#endif #include <iostream>
//DLL_CLASS是关键字不可缺省 class DLL_CLASS MyOGRE1
{
public:
void MyOGREHello()
{
std::cout << "Hello MyOGRE_Hello()" <<"NIMEI"<< std::endl;
} }; #endif 2.函数的声明与实现分开
.h文件
using namespace std;
#ifndef TestDll_H_
#define TestDll_H_
#pragma once
#define DLL_EXPORTS
#ifdef DLL_EXPORTS
//#define DLL_API extern "C" __declspec(dllexport)
#define DLL_CLASS __declspec(dllexport)
#else
/*#define DLL_API extern "C" __declspec(dllimport) */
#define DLL_CLASS __declspec(dllimport)
#endif
class DLL_CLASS MyOGRE1
{
public:
void MyOGREHello(); }; #endif cpp文件
#include "stdafx.h"
#include "testdll.h"
#include <iostream>
#include "testdll.h"
using namespace std;
void MyOGRE1::MyOGREHello()
{
cout << "66666" << endl;
} c#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication17
{
[StructLayout(LayoutKind.Sequential)]
public class MyOGRE
{
//该方式是直接调用C++ DLL内的类的成员函数。 QAEXXZ
[DllImport("MyDLL.dll", EntryPoint = "?MyOGREHello@MyOGRE1@@QAEXXZ")]
public static extern void MyOGREHello();
}
class Program
{ #region 1
static void Main(string[] args)
{ MyOGRE.MyOGREHello(); Console.ReadKey();
} #endregion
}
}
c# 导入c++ dll的更多相关文章
- Unity基础-外部导入C# Dll(汇编集)
外部导入C# Dll(汇编集) 使用创建一个dll工程 添加依赖的dll 导入Unity中,放入Assets的任意文件夹中 使用代码生成的dll汇编集只要"use dll的名字"引 ...
- C#导入c++ dll报找不到dll文件 masm32调用c++类库
最近需要在C#下调用一个c++ dll库,不管怎样dllimport就是报错找不到该dll文件,路径.函数名称.参数.dllimport参数逐个检查确认无误也无济于事,无奈想用其他语言调用试试,由于是 ...
- C#生成DLL,在Unity中导入/调用DLL
网上搜了一些DLL的创建.编写.使用的学习资料,感觉比较的凌乱.或是复杂抽象,或是关键地方一笔带过,不是很适合萌新.于是决定还是图文记录一下该过程,尽量精简而又明确. 学习资料: https://do ...
- python 3.6 导入c++dll所遇到的坑
1 返回值在c++里面为const char*,python 接收实际上为int类型 原因:python默认返回值为int 解决方法: import ctypes import os CUR_PATH ...
- Win32 的dll导入
dll 文件可以导入变量,函数,和C++类,但是导入变量会使执行程序与dll紧耦合,而C++类导入则需要两个文件的开发商所用的编译器相兼容,所以做好只导入函数; 创建dll : 头文件:#ifdef ...
- C# 生成dll文件 并导入使用
首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...
- Unity插件之Unity调用C#编译的DLL
Unity插件分为两种:托管插件(Managed Plugins)和本地插件(Native Plugins).本文先来说说Unity中的托管插件,本地插件的文章留到下一篇文章再说. 有时候我们会有这样 ...
- 小甲鱼PE详解之输入表(导入表)详解2(PE详解08)
在此之前,我们已经对这个输入表进行了一些实践和理解,这有助于大家对这个概念更进一步的加深认识.小甲鱼觉得,越是复杂的问题我们应该越是去动手操作它,认识它,这样才容易熟悉它! 在上一节课我们像小鹿一样的 ...
- 初解DLL基本知识
1.DLL基本理论 在Windows操作系统中,几乎所有的内容都是以DLL的形式存在的. 1.DLL基本概念 语言程序要从目标代码(.obj)外部引用函数,可以通过俩种途径实现——静态链接和动态链接. ...
随机推荐
- JavaScript define
1. AMD的由来 前端技术虽然在不断发展之中,却一直没有质的飞跃.除了已有的各大著名框架,比如Dojo,jQuery,ExtJs等等,很多公司也都有着自己的前端开发框架.这些框架的使用效率以及开发质 ...
- Free Online SQL Formatter
SQL Formatter Web Service Free Online SQL Formatter SQL Parser engine used by SQL formatter 今日找了几个在线 ...
- HashMap源码分析(基于JDK1.6)
在Java集合类中最常用的除了ArrayList外,就是HashMap了.本文尽自己所能,尽量详细的解释HashMap的源码.一山还有一山高,有不足之处请之处,定感谢指定并及时修正. 在看Hash ...
- JAVA单例模式:懒汉式,饿汉式
今天复习了一下java的单例模式,写了懒汉式和饿汉式的实现例子.代码如下: 1.懒汉式单例 package com.lf.shejimoshi; /** * @classDesc: 类描述:(懒汉式单 ...
- Python reload() 函数
reload(module) 作用: 用于重新载入之前载入的模块. module -- 模块对象.返回模块对象. 实例: 重新载入 sys 模块,并设置默认编码为 utf8 >>> ...
- 支付宝RSA签名
1.参考网上相关文章,开放php中的openssl,但使用网上例子调用openssl_pkey_new,一直报100013错误.后改用用支付宝提供的SDKdemo程序 发现使用提供的privkye,可 ...
- POI 单元格
OI 单元格合并中的CellRangeAddress 参数: CellRangeAddress(int, int, int, int) 参数:起始行号,终止行号, 起始列号,终止列号 sheet.ad ...
- android中状态栏透明
设置 Acitivity 所在 window 的属性 @Override protected void onCreate(Bundle savedInstanceState) { super.onCr ...
- PL/Sql developer安装,设置
安装PL/Sql developer,和安装出现错误(oracle client not properly installed),pl/sql中文乱码 下载安装plsql_dev(文末有64位的百度云 ...
- 使用CMake生成sln项目和VS工程遇到的问题
用vs运行cmake后的工程 参考:http://zhidao.baidu.com/link?url=AZRxI0jGDzo6Pikk68qylee0g7leXbpbZGiVuyiijWbd8scUK ...