打开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
分享到:
相关推荐
3. **导入库与导入库**:VC编译器会为每个使用DLL的项目生成一个导入库(.lib)文件,这个文件包含了DLL的函数入口点。 二、创建DLL 1. **创建DLL项目**:在VC中,选择“新建” -> “项目”,然后选择“Win32 DLL...
在VC6环境下生成和调用DLL(动态链接库)是C++编程中常见的技术,尤其对初学者来说,理解这一过程至关重要。DLL可以共享代码和数据,减少内存占用,提高程序执行效率。以下是对这个“VC6生成DLL和调用DLL的最简单...
- 在Delphi中,导入DLL函数后,可以直接像调用本地函数一样调用DLL中的函数,确保参数类型匹配。 - 调用时需注意错误处理,因为DLL函数可能抛出异常或返回错误值。 总结来说,"Delphi 调用VC生成的DLL"涉及到不同...
在编译完成以后,产生 DLL 文件已经是一个可以直接供计算机使用的二进制文件,而 Visual C# 生成的 DLL 不是独立运行的程序,是某个程序的一个部分,只能由所属的程序调用,用户不能也不需要打开它,Visual C# ...
下面将详细介绍如何在VC++中调用DLL中的资源。 首先,让我们了解DLL的基本概念。DLL(Dynamic Link Library)是一种可执行文件,它包含可由多个程序共享的代码和数据。通过使用DLL,开发者可以减少内存占用,提高...
将MATLAB M文件编译为DLL,可以使得C++代码无需直接运行MATLAB解释器,而是直接调用DLL中的函数,提高效率。 4. **VC++与MATLAB DLL的交互**: 在VC++中,我们可以使用`LoadLibrary`和`GetProcAddress`函数来加载...
对于Visual C++(简称VC)开发的应用程序,调用DLL文件是常见的功能扩展手段。下面将详细阐述VC如何调用DLL文件,以及Windows提供给开发者使用的两种映射DLL到进程地址空间的方法。 一、VC调用DLL的基本步骤 1. ...
- "在VC中DLL的调用规则.mht"可能包含了更详细的VC++中DLL调用规则的说明和示例。 - "LogOn.zip"文件可能包含了一个登录功能相关的DLL示例,可以解压后查看具体实现。 理解并熟练掌握VC++中的DLL调用规则对于开发...
首先,我们需要了解VB和VC之间调用DLL的基本原理。VB和VC都是Microsoft开发的编程环境,但它们的语法和底层实现有所不同。VB使用COM(Component Object Model)进行组件交互,而VC则更偏向于C++的面向对象编程。当VC...
- 通过这种方式,可以确保BCB能够正确识别并调用DLL中的函数。 #### 总结 BCB调用VC编译的DLL涉及多个步骤,包括生成导入库、转换导入库格式、配置BCB项目以及处理未解析外部引用等问题。通过上述步骤,开发者...
2. **在VB中调用DLL**: - 在VB项目中,首先声明DLL函数。使用`Declare`语句,指定函数名、参数类型和返回值类型。例如: ```vb Declare Function RotateImage Lib "path_to_dll" (ByVal imgData() As Byte, ...
在本案例中,我们将深入探讨如何在Visual C++(简称VC)环境下调用DLL中的函数,以实现对特定控制板卡的功能操作。 首先,我们需要理解DLL的工作原理。DLL文件本质上是一个包含可执行代码和数据的库,这些代码和...
除了JNI,还可以考虑其他技术,如使用Java的`Java Native Access (JNA)`库,它无需编写C代码即可调用DLL,但可能在性能上不如JNI。 总结,Java调用VC编写的DLL涉及的知识点包括JNI接口定义、DLL导出函数、Java本地...
3. **调用DLL函数**:在VC++代码中,你可以像调用普通C函数一样调用DLL中的函数。例如,`return_value = MyDLLFunction(input1, input2);`。这里的`MyDLLFunction`是LabVIEW VI的导出函数名,`input1`和`input2`是...
这是最常见的动态调用DLL函数的方式。首先,使用`LoadLibrary`函数加载DLL,它会将DLL映像加载到进程的地址空间中。然后,通过`GetProcAddress`函数获取DLL中特定函数的地址。这种方法适用于任何未导出为标准函数...
当其他程序调用DLL文件中的函数时,这些函数需要用extern "C" __declspec(dllimport)进行声明,以导入函数。这是因为在C++中,函数名会被进行名称修饰(Name Mangling),如果不使用extern "C",则无法正确找到对应...
在VC DOS环境下生成DLL文件,是一项对于熟悉老式操作系统与编程技术的开发者而言至关重要的技能。这篇文章将探讨如何在DOS环境下使用Borland C++编译器来创建动态链接库(DLL)以及对应的工程实例。DLL是Windows操作...
5. **调用DLL函数**:在Delphi中,通过上述获取的函数指针调用VC++ DLL的函数,注意调用约定应保持一致,通常为`stdcall`。 6. **异常处理**:由于跨语言调用,可能会遇到类型不匹配或DLL加载失败等问题,因此需要...
调用DLL时可能出现各种错误,如找不到DLL、找不到导出函数等。因此,应该使用`Err`对象进行错误处理,确保程序的健壮性。 9. **注意事项** - 确保VB和VC的项目都使用相同的平台(例如,都是32位或64位)。 - DLL...
本文将详细介绍如何使用 VC 调用 LabVIEW 生成的 DLL 文件,并提供了一个实践例程,演示如何使用 C 语言程序调用 LabVIEW 生成的 DLL 文件,以实现电压采集和放大功能。 标题解释 VC 调用 LabVIEW 生成的 DLL 是指...