Qt程序中调用C#编写的dll(推荐)
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
typedef int (*x_add)(int a , int b);
typedef void (*x_substract)(int a , int b , int* c);
typedef void (*x_showBox)(const char* content);
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
//add
void MainWindow::on_pushButton_clicked()
{
int a = ui->lineEdit->text().toInt();
int b = ui->lineEdit_2->text().toInt();
QLibrary library("http://www.jb51.net/article/CppDll.dll");
if(library.load()){
x_add add = (x_add)library.resolve("?add@@YAHHH@Z");
if(add){
QString str = QString::number(add(a , b));
QMessageBox::information(this , "call add from dll" , str);
}
}
}
//sub
void MainWindow::on_pushButton_2_clicked()
{
int a = ui->lineEdit_3->text().toInt();
int b = ui->lineEdit_4->text().toInt();
int c = 0;
QLibrary library("http://www.jb51.net/article/CppDll.dll");
if(library.load()){
x_substract sub = (x_substract)library.resolve("?substract@@YAXHHPAH@Z");
if(sub){
sub(a , b , &c);
QString str = QString::number(c);
QMessageBox::information(this , "call sub from dll" , str);
}
}
}
//showBox
void MainWindow::on_pushButton_3_clicked()
{
QLibrary library("http://www.jb51.net/article/CppDll.dll");
if(library.load()){
x_showBox showBox = (x_showBox)library.resolve("?showBox@@YAXPBD@Z");
if(showBox){
showBox("showBox!");
}
}
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播