`

VC生成DLL并且调用DLL文件

c 
阅读更多
 打开VC 新建 工程 Win32 Dynamic~Link Library 名字“MakeDll”
 新建class  MakeDll
 MakeDll.h
// MakeDLL.h: interface for the MakeDLL class.
#if !defined(AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_)
#define AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
extern "C" _declspec(dllexport) int sum(int a,int b);//
class MakeDLL  
{
public:
	MakeDLL();
	virtual ~MakeDLL();

};

#endif // !defined(AFX_MAKEDLL_H__AEA598EA_1138_4F09_A882_F655B1DEA725__INCLUDED_)


MakeDll.cpp

#include "MakeDLL.h"

//////////////////////////////////////////////////////////////////////

#include "windows.h"

BOOL APIENTRY DllMain(
HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" _declspec(dllexport)int sum(int a, int b)
{
return a+b;
}

//////////////////////////////////////////////////////////////////////

MakeDLL::MakeDLL()
{

}

MakeDLL::~MakeDLL()
{

}

编译生成MakeDll.dll文件
调用DLL :

新建工程 Wind32 Console Application  
DllTest
DllTest.h

#if !defined(AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_)
#define AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class DllTest  
{
public:
	DllTest();
	virtual ~DllTest();

};

#endif // !defined(AFX_DLLTEST_H__E15FF510_5A00_4C68_9A3F_E34173E64BBC__INCLUDED_)
DllTest.cpp#include "DllTest.h"
#include "stdio.h"
#include<windows.h>
//////////////////////////////////////////////////////////////////////
void main(void)
{


HINSTANCE hDLL;
hDLL=LoadLibrary("MakeDll.dll");//加载动态链接库MyDll.dll文件;
typedef int( *pSum)(int a,int b);

pSum Sum ;
//= 
Sum=(pSum)GetProcAddress(hDLL,"sum");
int a = Sum(5,8);
printf("%d",a);
}
//////////////////////////////////////////////////////////////////////

DllTest::DllTest()
{

}

DllTest::~DllTest()
{

}
把 MakeDll.dll 拷贝到 DllTest 文件夹下 

编译运行

结果 13 over 








 








分享到:
评论

相关推荐

    VC中DLL的调用规则 VC中DLL的调用规则 VC中DLL的调用规则

    3. **导入库与导入库**:VC编译器会为每个使用DLL的项目生成一个导入库(.lib)文件,这个文件包含了DLL的函数入口点。 二、创建DLL 1. **创建DLL项目**:在VC中,选择“新建” -&gt; “项目”,然后选择“Win32 DLL...

    VC6生成DLL和调用DLL的最简单例子 入门级

    在VC6环境下生成和调用DLL(动态链接库)是C++编程中常见的技术,尤其对初学者来说,理解这一过程至关重要。DLL可以共享代码和数据,减少内存占用,提高程序执行效率。以下是对这个“VC6生成DLL和调用DLL的最简单...

    Delphi 调用VC生成的DLL

    - 在Delphi中,导入DLL函数后,可以直接像调用本地函数一样调用DLL中的函数,确保参数类型匹配。 - 调用时需注意错误处理,因为DLL函数可能抛出异常或返回错误值。 总结来说,"Delphi 调用VC生成的DLL"涉及到不同...

    VC++ 调用 C#生成DLL的多种方法

    在编译完成以后,产生 DLL 文件已经是一个可以直接供计算机使用的二进制文件,而 Visual C# 生成的 DLL 不是独立运行的程序,是某个程序的一个部分,只能由所属的程序调用,用户不能也不需要打开它,Visual C# ...

    VC调用DLL中资源

    下面将详细介绍如何在VC++中调用DLL中的资源。 首先,让我们了解DLL的基本概念。DLL(Dynamic Link Library)是一种可执行文件,它包含可由多个程序共享的代码和数据。通过使用DLL,开发者可以减少内存占用,提高...

    Vc 调用matlab以dll形式调用m文件

    将MATLAB M文件编译为DLL,可以使得C++代码无需直接运行MATLAB解释器,而是直接调用DLL中的函数,提高效率。 4. **VC++与MATLAB DLL的交互**: 在VC++中,我们可以使用`LoadLibrary`和`GetProcAddress`函数来加载...

    VC如何调用DLL文件

    对于Visual C++(简称VC)开发的应用程序,调用DLL文件是常见的功能扩展手段。下面将详细阐述VC如何调用DLL文件,以及Windows提供给开发者使用的两种映射DLL到进程地址空间的方法。 一、VC调用DLL的基本步骤 1. ...

    在VC中DLL的调用规则

    - "在VC中DLL的调用规则.mht"可能包含了更详细的VC++中DLL调用规则的说明和示例。 - "LogOn.zip"文件可能包含了一个登录功能相关的DLL示例,可以解压后查看具体实现。 理解并熟练掌握VC++中的DLL调用规则对于开发...

    在VC客户端调用vb的dll.rar_VB VC DLL_VB调用DLL_VB调用VC_vc 调用 dll_vc调用vb的DLL

    首先,我们需要了解VB和VC之间调用DLL的基本原理。VB和VC都是Microsoft开发的编程环境,但它们的语法和底层实现有所不同。VB使用COM(Component Object Model)进行组件交互,而VC则更偏向于C++的面向对象编程。当VC...

    BCB调用VC的DLL

    - 通过这种方式,可以确保BCB能够正确识别并调用DLL中的函数。 #### 总结 BCB调用VC编译的DLL涉及多个步骤,包括生成导入库、转换导入库格式、配置BCB项目以及处理未解析外部引用等问题。通过上述步骤,开发者...

    VB通过调用VC生成的DLL实现图片360旋转

    2. **在VB中调用DLL**: - 在VB项目中,首先声明DLL函数。使用`Declare`语句,指定函数名、参数类型和返回值类型。例如: ```vb Declare Function RotateImage Lib "path_to_dll" (ByVal imgData() As Byte, ...

    基于VC的DLL调用例子

    在本案例中,我们将深入探讨如何在Visual C++(简称VC)环境下调用DLL中的函数,以实现对特定控制板卡的功能操作。 首先,我们需要理解DLL的工作原理。DLL文件本质上是一个包含可执行代码和数据的库,这些代码和...

    java调用vc的dll

    除了JNI,还可以考虑其他技术,如使用Java的`Java Native Access (JNA)`库,它无需编写C代码即可调用DLL,但可能在性能上不如JNI。 总结,Java调用VC编写的DLL涉及的知识点包括JNI接口定义、DLL导出函数、Java本地...

    VC调用labview的制作的dll

    3. **调用DLL函数**:在VC++代码中,你可以像调用普通C函数一样调用DLL中的函数。例如,`return_value = MyDLLFunction(input1, input2);`。这里的`MyDLLFunction`是LabVIEW VI的导出函数名,`input1`和`input2`是...

    VC三种动态调用dll方法

    这是最常见的动态调用DLL函数的方式。首先,使用`LoadLibrary`函数加载DLL,它会将DLL映像加载到进程的地址空间中。然后,通过`GetProcAddress`函数获取DLL中特定函数的地址。这种方法适用于任何未导出为标准函数...

    CVI调用VC编写的Dll文件.pdf

    当其他程序调用DLL文件中的函数时,这些函数需要用extern "C" __declspec(dllimport)进行声明,以导入函数。这是因为在C++中,函数名会被进行名称修饰(Name Mangling),如果不使用extern "C",则无法正确找到对应...

    VC DOS下生成DLL文件以及DLL工程事例

    在VC DOS环境下生成DLL文件,是一项对于熟悉老式操作系统与编程技术的开发者而言至关重要的技能。这篇文章将探讨如何在DOS环境下使用Borland C++编译器来创建动态链接库(DLL)以及对应的工程实例。DLL是Windows操作...

    Delphi 调用VC DLL

    5. **调用DLL函数**:在Delphi中,通过上述获取的函数指针调用VC++ DLL的函数,注意调用约定应保持一致,通常为`stdcall`。 6. **异常处理**:由于跨语言调用,可能会遇到类型不匹配或DLL加载失败等问题,因此需要...

    VB调用VC的DLL,

    调用DLL时可能出现各种错误,如找不到DLL、找不到导出函数等。因此,应该使用`Err`对象进行错误处理,确保程序的健壮性。 9. **注意事项** - 确保VB和VC的项目都使用相同的平台(例如,都是32位或64位)。 - DLL...

    vc调用labview DLL

    本文将详细介绍如何使用 VC 调用 LabVIEW 生成的 DLL 文件,并提供了一个实践例程,演示如何使用 C 语言程序调用 LabVIEW 生成的 DLL 文件,以实现电压采集和放大功能。 标题解释 VC 调用 LabVIEW 生成的 DLL 是指...

Global site tag (gtag.js) - Google Analytics