C++动态(显式)调用 C++ dll示例

2023-05-16

1、创建DLL新项目Dll1,Dll1.cpp:


1 extern "C" __declspec(dllexport) const char* myfunc()
2 {
3    return "hello";
4 }  

生成后,将Dll1.dll置于之后创建控制台程序应用程序同目录下。

2、创建一个C++控制台程序用于调用Dll1.dll测试,ConsoleApplication1.cpp:

复制代码


 1 #include <Windows.h>
 2 #include <iostream>
 3 using namespace std;
 4 
 5 typedef const char*(*testFunc)();
 6 
 7 void main()
 8 {
 9     HINSTANCE hDll = LoadLibrary("Dll1.dll");
10     testFunc tf = (testFunc)GetProcAddress(hDll,"myfunc");
11     if(!tf)
12     {
13         cout<<"Error"<<endl;
14     }
15     else
16     {
17         cout<<tf()<<endl;
18     }
19     FreeLibrary(hDll);
20     system("pause");
21 }  

复制代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++动态(显式)调用 C++ dll示例 的相关文章

随机推荐

  • QT中手动释放堆中的对象(new 出来的)

    Qt内存自动释放有两个前提条件 xff1a 1 必须是QObject的派生类 2 必须指定了parent对象 即 xff1a Qt 中 父亲被删除的时候会自动销毁他的孩子 所以如果New出来的并且没有父亲 那么则需要手动删除它 需要 xff
  • c++指针概念回顾

    前言 复杂类型说明 要了解指针 多多少少会出现一些比较复杂的类型 所以我先介绍一下如何完全理解一个复杂类型 要理解复杂类型其实很简单 一个类型里会出现很多运算符 他们也像普通的表达式一样 有优先级 其优先级和运算优先级一样 所以我总结了一下
  • c语言指针详解(概念示例)

    指针是 xff23 语言中广泛使用的一种数据类型 运用指针编程是 xff23 语言最主要的风格之一 利用指针变量可以表示各种数据结构 xff1b 能很方便地使用数组和字符串 xff1b 并能象汇编语言一样处理内存地址 xff0c 从而编出精
  • C#中模态对话框释放问题

    以下实例中可以测出 xff0c 当一个模态对话框返回DialogResult的结果后 xff0c 对话框自动隐藏 xff0c 但对话框db并没有彻底释放掉 xff0c 因此 仍可以访问db中的成员 xff0c 想要彻底释放需要手动加上db
  • qt中设置窗体大小

    在我们的编程中 xff0c 我们有时候会想让我们的程序窗体固定大小 xff0c 而该大小是我们在编辑时的大小 经过我的摸索 xff0c 和查阅资料 找到了一个方法 其实也很简单 其实也就是先找到该窗体的物理大小 然后设置固定窗体的大小即可
  • c++ (QT)笔记

    1 标准情况下 xff0c c 43 43 中的类声明都在头文件中 xff0c 实现在 cpp文件中 xff0c 所以只在 cpp中实现类的函数在头文件中没有声明会报错 c 43 43 的函数实现和声明都可放在头文件中这样 cpp文件也可访
  • C语言中指针动态内存的申请和释放

    什么是动态内存的申请和释放 xff1f 当程序运行到需要一个动态变量时 xff0c 需要向系统的堆中申请一块内存 xff0c 用来存储这块变量 xff0c 这就是内存的申请 当程序不需要这个变量时 xff0c 就需要把申请的这块内存释放掉
  • Qt中线程使用汇总

    QThread类提供一种独立于平台的线程管理方式 方法1 一个QThread实例管理程序中的一个线程 QThread的执行开始于run 默认情况下 xff0c run 通过调用exec 启动事件循环 xff0c 并在线程内运行Qt事件循环
  • 对线程与进程的区别以及对多线程并发的理解

    一 线程与进程的区别 先简单说说线程与进程的概念 xff1a xff08 1 xff09 进程是指一个内存中运行的应用程序 xff0c 比如在Windows系统中 xff0c 一个运行的exe就是一个进程 xff08 2 xff09 线程是
  • 单片机学习经验总结

    单片机的学习是嵌入式中的裸机开发 xff0c 也就是不基于操作系统的开发过程 xff0c 你只要把自己学的程序下载到单片机内执行即可 xff08 这个过程有个专业术语 xff1a 烧写 xff09 在这个过程中 xff0c 你所写的程序 x
  • 三极管的工作原理(详细、通俗易懂、图文并茂)

    一 很多初学者都会认为三极管是两个 PN 结的简单凑合 xff08 如图1 xff09 这种想法是错误的 xff0c 两个二极管的组合不能形成一个三极管 我们以 NPN 型三极管为例 xff08 见图 2 xff09 xff0c 两个 PN
  • 三极管工作原理图解,快速了解三极管结构和工作原理

    了解三极管工作原理前 xff0c 先看一张三极管内部结构原理图 xff1b 从图中可以清晰的看出NPN和PNP内部结构的区别 三极管NPN型和PNP型的工作原理 xff1a NPN三极管 xff1a Vb lt Ve xff08 截止状态
  • C# 获取进程或线程的信息

    using System using System Collections Generic using System Linq using System Text using System Diagnostics namespace Con
  • C#图片保存与读取,以及图片另存操作

    照片的保存与读取 lt summary gt 图片转二进制 lt summary gt lt param name 61 34 imgPhoto 34 gt 图片对象 lt param gt lt returns gt 二进制 lt ret
  • C#异常解决:在调用OLE之前,必须将当前线程设置为单线程单单元(STA)模式。

    问题来源 xff1a 昨晚上在调试数据库大作业的时候 xff0c 我在注册界面Register里点击 34 上传头像 34 这个linklabel时 xff0c 程序出现了一个异常 xff1a 在调用OLE之前 xff0c 必须将当前线程设
  • Qt调用OpenCV汇总(1)

    1 在Qt Creator上新建一个项目 右键新项目 gt gt 添加库 gt gt 外部库 gt gt 选中库文件路径 gt gt 下一步 xff0c 完成 xff0c 添加到 pro文件中 然后再在pro文件中手动输入下面代码 xff1
  • qt调用opencv汇总(2)

    OpenCV3 4 3 43 Qt5 9 4 QtCreator 开发环境搭建 之前有过对OpenCV3 4 2 43 VS2015编译及环境搭建 xff0c 今天使用OpenCV3 4 3 43 QtCreator5 9 4编译及环境搭建
  • 关于QT下配置OpenCV3.4.0后出现 error: undefined reference to ‘cv::xxx‘的问题及解决方案,直接使用编译好的opencv库

    按照网上的办法 xff0c 在QT中pro文件末尾添加以下代码来引入OpenCV的库和头文件 xff1a INCLUDEPATH 43 61 D OpenCV3 4 opencv build mingw install x64 mingw
  • C#实现最小二乘法

    根据http zh wikipedia org wiki E6 9C 80 E5 B0 8F E4 BA 8C E4 B9 98 E6 B3 95里面的说法 xff1a 线性函数模型 典型的一类函数模型是线性函数模型 最简单的线性式是 xf
  • C++动态(显式)调用 C++ dll示例

    1 创建DLL新项目Dll1 xff0c Dll1 cpp 1 extern 34 C 34 declspec dllexport const char myfunc 2 3 return 34 hello 34 4 生成后 xff0c 将