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

如何调用 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();

}

分享到:
评论

相关推荐

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

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

    c++builder隐式连接DLL

    简单的c++builder隐式连接DLL,初学者可以瞅瞅

    Qt调用dll中的功能函数demo

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

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

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

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

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

    vs2017 C++动态链接库的创建和调用(隐式)

    vs2017 C++动态链接库的创建和调用,在VS2017下创建C++动态库(编译时去掉预编译头),把.h ,lib文件拷入新建测试工程目录下并添加到该工程中,dll文件加到运行目录下

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

    资源包括一个创建DLL的工程,一个使用DLL的工程,共俩个工程。...附带一个说明文档,分为静态(隐式)链接方式和动态(显式)链接方式详细介绍了DLL的创建以及使用方式。 简单明了,一学包会,不坑爹。

    改变隐式加载dll路径的方法实例代码

    通过SetDllDirectory可以灵活的设置隐式加载dll的路径,详见源代码.vs2005编译

    两种方法封装调用MFC-dll

    两种封装调用mfc-dll方式,显示和隐式,各有好处

    MFC-VS2019-EXE调用DLL-demo.zip

    VS2019 MFC EXE调用DLL 的一个小例子,亲测可行,希望对初学者有帮助。一般网上的例子都是隐式链接的,这个DEMO是显示链接。

    dll 类导出

    c ++ 编写dll .导出函数. 导出类. 使用dll. 包括隐式调用 显示调用

    自己写的dll的简介

    2. 此外GetProcAddress是直接在.dll文件中寻找同名函数,如果DLL中的Test函数是个C++函数,那么由于在.dll文件中的实际文件名会被修饰(具体被修饰的规则可参考函数调用约定详解或者使用VC自带的Depends.exe查看),...

    C++和MATLAB混合编程-DLL篇

    先小话一下DLL,DLL是动态链接库,是源代码编译后的二进制库文件和程序接口,和静态链接库不同的是,程序在编译时并不链接动态链接库的执行体,而是在文件中保留一个调用标记,在程序运行时才将动态链接库文件加载入...

    《Visual C++范例大全》随书光盘 第十二章

    实例280——使用隐式方式调用DLL实现浮点数的四则运算 实例281——创建Win32 DLL导出一个全局变量 实例282——调用DLL,获取其导出的全局变量值 实例283——创建Win32 DLL导出一个计算长方体表面积和体积的类 ...

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

    动态链接库的创建和应用实例,编译器为vc6.0

    动态链接库运算器

    显式链接是应用程序在执行过程中随时可以加载DLL文件,也可以随时卸载DLL文件,这是隐式链接所无法作到的,所以显式链接具有更好的灵活性,对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用 ...

    C++动态链接库的两种调用方式

    只有在其它模块调用动态链接库中的函数时,它才发挥作用。Windows API中的所有函数都包含在DLL中。其中有3个重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户...

    编译和链接(lib和dll区别)

    初学动态链接库时,总被许多概念搞得一塌糊涂,比如“隐式链接”,“动态加载”,lib静态库和lib导入库。虽然会用,但概念还是很模糊的。后来了解了编译和链接的一些原理,总算有一个比较清晰的理解,整理出来和大家...

    TSC标签打印机DLL实现打印示例

    VC6调用DLL演示控制TSC标签打印机, 1. 本示例用TSC2440, 可方便改成其他型号 2. 采用显式调用DLL, 不需要lib,...(网络上的其他示例一般采用隐式调用,发现dll版本和lib不匹配,遇到运行不成功,故改写成显式调用)

    MFC常规DLL的创建与访问

    动态链接库(DLL)是Windows编程的重要特色之一。Visual C++ 支持三种 DLL,即非MFC动态库、MFC 常规 DLL、MFC 扩展 DLL,其中,MFC 常规 DLL 得到了广泛的应用...应用程序访问常规 DLL 有两种方式:隐式链接和显式链接。

Global site tag (gtag.js) - Google Analytics