社区
Qt
帖子详情
qt调用c++编写的dll
DeveloperLeaf
2017-12-11 05:29:14
D:\QTCode\SleepHouseKeeperClient\SleepHouseKeeper\main.cpp:48: error: undefined reference to `GetVidAndPidInfor',在调用c++编写的dll的时候,一直报undefined reference错误,在同样的环境下,调用纯c编写的dll是没有问题的,请教下怎样解决?谢谢!
...全文
1006
10
打赏
收藏
qt调用c++编写的dll
D:\QTCode\SleepHouseKeeperClient\SleepHouseKeeper\main.cpp:48: error: undefined reference to `GetVidAndPidInfor',在调用c++编写的dll的时候,一直报undefined reference错误,在同样的环境下,调用纯c编写的dll是没有问题的,请教下怎样解决?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
彩阳
2018-08-08
打赏
举报
回复
需要判定你的插件是否有“GetVidAndPidInfor”这样的函数。我以前遇到的情况是怎么也链接不过,原来是dll缺少导出这样的函数。使用Visual Studio 命令行输入:
dumpbin /exports a.dll
来看看是否有这个函数导出。
zheguzai000
2018-08-06
打赏
举报
回复
zheguzai000
2018-08-06
打赏
举报
回复
如果你调用的dll名称为: abc.dll
那么要在Qt的工程文件*.pro文件里面添加 LIBS += -labc
添加完毕之后再去重新构建运行。
如下图:
跑马溜溜的山上
2018-08-04
打赏
举报
回复
C++为了支持重载函数,实际上是把函数参数也编译进去了。所以应该用 extern "C" 导出,可使用DEF文件。
如果使用到了类对象,则尤其注意,编译器要完全一致。GNU C++是无法调用 VC++ 导出的class的。但是 C是可以的。
亭台六七座
2018-08-03
打赏
举报
回复
调用约定是否相同?
Jue_Xin
2017-12-30
打赏
举报
回复
dll的相关类(外面要使用的) class XXX_EXPORT ClassName { };
Jue_Xin
2017-12-30
打赏
举报
回复
"xxx_global.h" #pragma once #include <QtCore/qglobal.h> #ifndef BUILD_STATIC # if defined(XXX_LIB) # define XXX_EXPORT Q_DECL_EXPORT # else # define XXX_EXPORT Q_DECL_IMPORT # endif #else # define XXX_EXPORT #endif
mantis_4545
2017-12-27
打赏
举报
回复
windows下可在dll的函数声明中指定extern "C"和_stdcall
Marcelxx
2017-12-25
打赏
举报
回复
对,函数导出的时候,加上extern "C"
童心未泯的cuzn
2017-12-20
打赏
举报
回复
用extern"C"框一下
c#
调用
QT
C++
/C#
DLL
例子
本例子适用范围:程序初学者。 使用环境win7 + vs2010 +
qt
5.6.1 提供以下例子 1.c#
调用
c# CSharp_Call_CSharp_
Dll
2.c#
调用
QT
C++
Dll
(
QT
工程中提供了
QT
C++
调用
QT
C++
DLL
例子) CSharp_Call_Cplusplus_
Dll
例子: 针对2说明,目前只实现了网络连接,数据发送暂不行 能力有限,不喜勿碰,仅供参考
Labview
调用
C++
Dll
Labview
调用
C++
Dll
,关于Labview如何生成
Dll
,可以搜楼主其他上传资源
Qt
调用
C\
C++
语言
编写
的动态链接库示例
Qt
调用
C\
C++
语言
编写
的动态链接库示例, #ifndef ENGINEMODEL_H #define ENGINEMODEL_H #include "macrodef.h" typedef struct inputdata { real altp; real Mach_number; real PLA; } INPUTDATA; typedef struct outputdata { real NL; real NH; real P3s; real P5t; real T5t; real P25t; real T25t; } OUTPUTDATA; typedef void (__stdcall *ENGINEMODEL)(INPUTDATA *in, OUTPUTDATA *ot); #endif // ENGINEMODEL_H
Qt
调用
标准
DLL
一个简单的例子演示,
Qt
中怎样
调用
VC或者其他语言写的标准
DLL
动态库中函数的方法
QT
编写
DLL
调用
示例 方法 参数 返回值 事件回调
QT
编写
DLL
给外部程序
调用
示例 方法 参数 返回值 事件回调 : 1:C#或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及参数一致; [
Dll
Import "
qt
dll
dll
" ] public static extern int add int i ; 第三步:
调用
函数执行; Console WriteLine add 10 ToString ; 2:
QT
第一步:引入头文件; #include <QLibrary> 第二步:定义函数指针 以备
调用
; typedef int Add int ; 第三步:载入
DLL
调用
函数执行; QLibrary lib "
qt
dll
dll
" ; lib load ; Add add Add lib resolve "add" ; add 50 ; 3:C或
C++
第一步:引入头文件; #include <windows h> 第二步:定义函数指针; typedef int Add int ; 第三步:载入
DLL
调用
函数执行; HINSTANCE h
Dll
LoadLibrary "
qt
dll
dll
" ; 载入
DLL
获取句柄 if h
Dll
NULL { Add add Add GetProcAddress h
Dll
"add" ; 获取函数地址 printf "%d" add 110 ; FreeLibrary h
Dll
; 释放
DLL
}">
QT
编写
DLL
给外部程序
调用
示例 方法 参数 返回值 事件回调 : 1:C#或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及参数一致; [
Dll
Import "
qt
dll
dll
" ] public static extern int add in [更多]
Qt
16,211
社区成员
26,591
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章