WPF开发的界面调用C++生成的dll文件
以引用d1.dll为例。
【生成d1.dll】
文件——新建——项目——Visual C++——Win32项目,选择DLL,点击Finish。在d1.cpp中添加代码
#include "stdafx.h"
int add(int a, int b) {
return a + b;
}
在项目名d1处,鼠标右键添加——新建项——Visual C++——代码——模块定义文件(.def),名称为d1.def
LIBRARY d1.dll
EXPORTS
add
运行,在Debug文件夹中获得d1.dll
【WPF引用d1.dll】
拖动控件,界面如下(2个textBox,1个label,1个button),界面编辑完成运行一次,把d1.dll文件放到生成的项目目录\bin\Debug中。

cs代码如下
//以上为一些其他的命名空间
using System.Runtime.InteropServices; namespace WpfApplication1
{
public partial class MainWindow : Window
{
//WPF调用C++的dll文件,以下两行代码必不可少。
[DllImport("d1.dll", EntryPoint = "add", CallingConvention = CallingConvention.Cdecl)]
public static extern int add(int a, int b);
private void button_Click(object sender, RoutedEventArgs e)
{
int a = Convert.ToInt32(textBox.Text);
int b = Convert.ToInt32(textBox1.Text);
label.Content = add(a, b);
}
}
}
WPF开发的界面调用C++生成的dll文件的更多相关文章
- C++调用C#生成的DLL文件的各种问题
C++调用C#生成的DLL文件: 首先选择建立一个C#的类库,然后再按照需求编写需要的函数 之后,对于C++调用过程需要注意的几点: 1.使用#using <....some.dll>指出 ...
- WPF调用C++生成的dll文件(示例)
注:笔者使用的VS版本为2019.1.打开VS2019,选择文件 -> 新建 -> 项目 2.选择项目 新建项目时选择C++“控制台应用”语言:C++平台:Windows项目类型:空项目 ...
- 在VS2010上使用C#调用非托管C++生成的DLL文件
背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用 ...
- 在VS2017上使用C#调用非托管C++生成的DLL文件(图文讲解)
原文:在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解) 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就 ...
- C#调用Matlab生成的Dll
问题描述:最近开发需要调用matlab生成的DLL,在New MWNumericArray 对象的时候报错,提示未将对象引用到对象的实例. 问题分析:因为MWArray.dll是Matlab提供的DL ...
- 【转】在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
原文:http://www.cyqdata.com/cnblogs/article-detail-35876# 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件 ...
- c++调用matlab生成的Dll动态连接库
点击打开链接http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台: matlab 7.0(R ...
- 示例 - 如何在NodeJS中调用SS生成的DLL
要想在NodeJS中调用SS生成的DLL, 需要借助EdgeJS. EdgeJS: http://tjanczuk.github.io/edge/ 如果你还不知道如何在SS中生成DLL, 请查看: S ...
- Java採用JNI调用VC++生成的dll(Java与C++交互)
应项目需求,须要android调用java,java再调用C++实现android一个图片匹配的功能,我们作为java组须要和C++和Android进行交互.以下是java和C++採用JNI的方式进行 ...
随机推荐
- sql 保留2位小数/换行
2.176544保留两位小数 1.select Convert(decimal(18,2),2.176544) 结果:2.18 2.select Round(2.176544,2) 结果:2.180 ...
- vue自定義指令
自定義指令可以允許代碼複用, 全局自定義指令 vue.directive('指令名',{鉤子函數:指令函數}) 局部自定義指令: vue({ directives:{指令名:{鉤子函數:指令函數} } ...
- Docker 部署应用、jar 工程 docker 方式部署
https://blog.csdn.net/jiangyu1013/article/details/81988342
- SQL 给视图赋权限
授予表权限 创建视图 授予视图权限 测试权限 复杂程度: 初级 数据要求: 使用自备的数据 您可以使用 SQL 在企业级地理数据库中创建表和要素类的视图. 本主题中的示例显示如何使用 Microsof ...
- 第二十天 模块 sys os os下path settings random shuit
一.sys模块 1.sys.argv 命令行参数List,第一个元素是程序本身路径 2.sys.exit(n) 退出程序,正常退出时exit(0) 3.sys.version 获取Pythonn解释程 ...
- P1428 小鱼比可爱
P1428 题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱 ...
- ram自己写?用IP?
前言 ram这种东西,可以用ip方便,也可以自己写代码描述它. 以下讨论单口ram:8bit*256 流程 1.IP: 使用IP当然是最方便的事情啦,但可移植性差而且可定制性较差. 仿真波形: 2.V ...
- Java 元编程及其应用
Java 元编程及其应用 首先,我们且不说元编程是什么,他能做什么.我们先来谈谈生产力. 同样是实现一个投票系统,一个是python程序员,基于django-framework,用了半小时就搭建了一个 ...
- 爬虫_电影天堂 热映电影(xpath)
写了一天才写了不到100行.不过总归是按自己的思路完成了 import requests from lxml import etree import time BASE = 'http://www.d ...
- 【cf789D】Weird journey(欧拉路、计数)
cf788B/789D. Weird journey 题意 n个点m条边无重边有自环无向图,问有多少种路径可以经过m-2条边两次,其它两条边1次.边集不同的路径就是不同的. 题解 将所有非自环的边变成 ...