`
mywebcode
  • 浏览: 1065626 次
文章分类
社区版块
存档分类
最新评论

如何调用 DLL 中的C++ 类(隐式链接)

 
阅读更多

如何调用DLL 中的C++类(隐式链接)

最近在整DLL,对于从DLL中导出 c++类,自己的学习笔记如下:

我用的是VS2010. 不过其他VS编译器应该都差不多吧!



步骤一:建一个 win32解决方案,主工程(就是还有 main函数的)那个我就不说

了),DLL工程最后一步的Application type选中Dll

步骤二: DLL工程中添加两个文件: clsDLL.h, clsDLL.cpp

//clsDLL.h

#pragmaonce

#ifndef DLLEXPT

#defineDLLEXPT __declspec (dllexport)

#endif

classDLLEXPT myCls

{

public:

void test();

};

// classDLL.cpp : Defines the exported functions for the DLLapplication.

//

#include"clsDLL.h"

#include<stdio.h>

#ifndef DLLEXPT

#defineDLLEXPT __declspec (dllexport)

#endif

voidmyCls::test()

{

printf("we are testing my program!/n");

}

步骤三:在主工程中的 main.cpp文件中,

添加#include"..//clsDLL/clsDLL.h" ,就是 include上面 DLL中头文件。

步骤四:在主工程中的main.cpp文件中,

添加#pragma comment (lib , "..//Debug//clsDLL.lib"), 实现隐式连接。

步骤五:接下来就和使用一般 C++类没有区别了。

Main.cpp文件内容如下:

#include<stdio.h>

#include"..//clsDLL/clsDLL.h"

#pragmacomment(lib ,"..//Debug//clsDLL.lib")

voidmain()

{

myCls c;

c.test();

}

分享到:
评论

相关推荐

    隐式调用dll和显式调用dll

    在C/C++中,使用`#pragma comment(lib, "dllname.lib")`来指示链接器加载相应的.lib文件,这个.lib文件包含了DLL的导入信息。然后,像调用本机函数一样调用DLL中的函数,例如`MyFunction()`。 **显式调用DLL** ...

    C++ 多个类的DLL封装以及隐式链接和显式链接2种方法调用

    本主题主要探讨如何将多个类封装到一个DLL中,并介绍两种调用DLL函数的方式:隐式链接和显式链接。 1. **DLL的封装** 当我们需要在DLL中封装多个类时,首先需要创建这些类的接口,通常是纯虚基类。然后,每个具体...

    dll显式链接与隐式链接

    隐式链接是Windows程序中最常见的链接DLL的方式。当编译器处理源代码时,它会查找所有引用的外部函数和变量,并将其与DLL中的符号进行绑定。这通常通过在源代码中包含头文件并链接到相应的.lib导入库来完成。 例如...

    c++builder隐式连接DLL

    在C++Builder中,隐式连接DLL是一种将动态链接库(DLL)集成到应用程序中的方法。这种方法与显式连接相对,显式连接是在运行时通过LoadLibrary和GetProcAddress等API来加载和调用DLL中的函数。隐式连接则是在编译...

    隐式调用DLL库实例

    在VC6.0(Visual C++ 6.0)环境下,开发者可以通过隐式链接或显式链接两种方式来调用DLL库。本实例将重点介绍隐式调用DLL的方法。 隐式调用与显式调用的区别在于,隐式调用时,编译器会在编译阶段将DLL中的函数接口...

    C++调用dll库

    标题 "C++调用dll库" 涉及的核心知识点是C++程序如何与动态链接库(DLL)交互。在Windows操作系统中,DLL文件是一种可重用代码的库,允许多个应用程序共享同一段代码,从而节省内存并方便更新。下面我们将深入探讨...

    DLL动态链接库实例,在MFC中隐式加载dll程序源码

    隐式加载是在编译时通过链接器将DLL函数的调用链接到可执行文件中,而显式加载则是在运行时通过LoadLibrary和GetProcAddress等API手动加载和查找函数。 2. MFC与DLL MFC是微软提供的C++类库,用于简化Windows API...

    C/C++:Windows编程—调用DLL程序的2种方法 示例demo

    本篇文章将详细讲解如何在C/C++中调用DLL程序的两种主要方法,并通过具体的示例代码来演示。 首先,我们要理解DLL的两种加载方式:隐式链接和显式链接。 1. 隐式链接: 隐式链接是在编译和链接阶段完成的。在源...

    VS2012-C++编写、调用DLL库最好的教程

    在隐式调用中,我们将学习如何在C程序中通过链接器来调用DLL。 ##### 添加头文件和.lib文件 - 在“头文件”文件夹中添加一个名为“head.h”的头文件。 - 在该文件中声明要调用的函数: ```cpp extern "C" __...

    Qt调用dll中的功能函数demo

    QT中调用dll中的函数,3种方式demo, 1、采用显示链接,调用DLL中全局函数 2、采用显示链接,调用C++类中的类对象、成员函数 3、采用隐式链接方法,通过QLibrary类对DLL中类对象、全局函数的调用

    动态链接库DLL的(隐式和显式)的创建和使用

    - 对于隐式链接,需要在使用DLL的项目中包含对应的.lib文件,并在源代码中直接调用导出函数。 - 显式链接时,首先使用LoadLibrary函数加载DLL,然后通过GetProcAddress获取函数指针,最后通过函数指针调用DLL中的...

    C++ dll隐式加载函数和类,显示加载函数和类,嵌套加载函数和类,

    C++,如何调用其他动态库中的函数或类成员函数?由隐式加载和显示加载,还有嵌套加载,嵌套加载即调用的dll中还调用了其他dll,麻烦但原理一样,故没写。 注:请打开build文件夹下的sln文件,打开src下的sln文件相对...

    DLL动态链接库生成和使用(隐式调用、显示调用)

    Windows10 64位系统,VS2013 编程平台...工程二为调用DLL的方法,分为隐式调用和显式调用。两个工程都是控制台应用程序consoleapplication。 对应的文章为 https://blog.csdn.net/u012210613/article/details/88904841

    Visual C++中调用DLL实现数据加密

    总的来说,Visual C++中调用DLL实现数据加密涉及到模块化编程、动态链接技术、加密算法以及Windows API的使用。开发者需要具备扎实的C++基础知识,对Windows编程有深入理解,并熟悉各种加密算法的原理,才能有效地...

    QT中DLL显示加载和隐式加载的Demo

    隐式加载是在编译链接阶段完成的,将DLL的函数和数据直接集成到可执行文件中,当程序运行时,系统会自动加载DLL。在QT中,我们通常通过头文件(.h)和导入库(.lib)来隐式链接DLL。例如,假设我们有一个名为"MyDll...

    BCB建立及调用DLL

    动态链接库(DLL)是一种库文件,它包含了可以被其他程序调用的函数和变量。DLL 是 Windows 中程序的重要组成部分,它可以让程序员将程序分为多个模块,每个模块由不同的团队成员开发。这样可以提高开发效率和质量。...

    VC 6.0下的Dll(显示调用和隐式调用)

    1. 隐式调用(Implicit Linking):在编译期间,通过在项目设置中添加引用到DLL的库文件(.lib),使得编译后的可执行文件与DLL之间建立链接。当程序运行时,系统自动加载所需的DLL。这种调用方式简单直观,但可能...

    动态链接库的隐式调用练习

    隐式链接是在编译时将DLL函数的地址解析到调用程序的可执行文件中,而显式链接则是在运行时通过API函数LoadLibrary和GetProcAddress动态获取函数地址。 2. **VC6.0编译器的使用** - VC6.0是Microsoft Visual C++的...

    两种方法封装调用MFC-dll

    本文将深入探讨两种封装调用MFC-DLL(动态链接库)的方法:显示封装和隐式封装,并分析它们各自的优势。 首先,我们来理解什么是DLL。DLL是一种可重用代码的模块,它包含可供多个程序同时使用的函数和资源。在MFC...

Global site tag (gtag.js) - Google Analytics