`

VC6中dll的创建和使用

阅读更多
一直很好奇C++的Dll是个什么东西...
最近终于知道了..

1.创建project
  选择Win32 Dynamic Link Library,然后 OK, 然后 选择带一个例子的那个 project
2.写一个简单的方法
  在project中可以看到已经创建好的4个文件.
  dlltest.cpp   StdAfx.cpp  dlltest.h  StdAfx.h
  先在dlltest.h 中生命自己要写的方法
  Java代码
#ifdef DLLTEST_EXPORTS  
#define DLLTEST_API __declspec(dllexport)  
#else 
#define DLLTEST_API __declspec(dllimport)  
#endif  
 
 
 
DLLTEST_API int add(int a,int b); 

#ifdef DLLTEST_EXPORTS
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif



DLLTEST_API int add(int a,int b);


然后去dlltest.cpp 中实现之
Java代码
#include "stdafx.h" 
#include "dlltest.h" 
 
BOOL APIENTRY DllMain( HANDLE hModule,   
                       DWORD  ul_reason_for_call,   
                       LPVOID lpReserved  
                     )  
{  
    switch (ul_reason_for_call)  
    {  
        case DLL_PROCESS_ATTACH:  
        case DLL_THREAD_ATTACH:  
        case DLL_THREAD_DETACH:  
        case DLL_PROCESS_DETACH:  
            break;  
    }  
    return TRUE;  
}  
 
 
 
DLLTEST_API int add(int a,int b)  
{  
    return a+b;  


#include "stdafx.h"
#include "dlltest.h"

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
    }
    return TRUE;
}



DLLTEST_API int add(int a,int b)
{
return a+b;
}

这样dll就算是写完了,build 一下.
3.使用Dll
  去dlltest的文件目录下的debug中,把dlltest.dll 和 dlltest.lib 复制到目标程序中,然后把 dlltest.h 也复制到目标程序中.

在目标程序 testdll.cpp 中
Java代码
 
#include "dlltest.h" 
#include <stdio.h>  
 
int main(){  
    int c=add(3,5);  
    printf("%d\n",c);  
 
    return 0;  



#include "dlltest.h"
#include <stdio.h>

int main(){
int c=add(3,5);
printf("%d\n",c);

return 0;
}



这样build.没有错误..但是运行会提示错误..
在该project的 settings 中 的 link 标签页 中间 那行 Object/Library modules: 中添加dlltest.lib 。
然后build.然后运行..

现在已经可以成功使用dll了.

ps:微软的东西真是麻烦...
分享到:
评论

相关推荐

    如何用vc6创建和使用dll

    本文将详细介绍如何在VC6中创建和使用DLL。 首先,我们创建DLL项目。打开VC6,选择"File" -&gt; "New",然后在"Project"对话框中,选择"Win32 Project"。在"Application Settings"中,确保"Dynamic-link library (DLL)...

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

    3. 创建调用DLL的应用程序,使用`LoadLibrary`、`GetProcAddress`和`FreeLibrary`函数。 4. 链接或动态加载DLL,并调用其导出函数。 这个简单的例子为初学者提供了基础的VC6 DLL开发和调用经验,通过实践,可以深入...

    VC中创建DLL

    本文将详细介绍如何在VC中创建DLL,并演示如何在其中导出全局变量、函数和类。 #### 二、创建DLL及其导出机制 ##### 1. 创建DLL项目 首先,在VC中创建一个新的Win32空项目MathLib。这个项目将成为我们的DLL项目。...

    VC6动态链接库(DLL文件)的创建、使用示例

    1. **创建DLL项目**:在VC6中,选择“文件”&gt;“新建”&gt;“项目”,然后在“工程类型”中选择“Win32 Dynamic-Link Library”。为工程命名,并选择适当的输出目录。 2. **定义导出函数**:DLL的核心是导出函数,它们...

    VC6LineNumberAddin.dll

    为了解决这个问题,开发者创建了名为"VC6LineNumberAddin.dll"的插件,它允许用户在VC6.0的编辑器中显示行号,极大地方便了代码的阅读和调试。 **插件安装与使用** 1. **下载与获取**:首先,你需要找到可靠的源...

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

    在Microsoft Visual C++ (VC) 开发环境中,DLL(Dynamic Link Library)是一种共享代码和资源的机制。DLL 文件可以被多个应用程序同时使用,以减少内存占用和提高代码重用性。理解VC中DLL的调用规则是开发高效、稳定...

    vc2010创建dll好方便

    在Microsoft Visual Studio 2010 (VC2010) 中创建DLL(动态链接库)确实比早期版本如VC6.0更为便捷,因为新版本提供了更直观的界面和改进的工作流。以下是一个详细步骤,指导如何在VC2010中创建DLL: 1. **创建项目...

    VC6中调用dll文件中的函数_教程

    ### VC6中调用DLL文件中的函数 —— 傻瓜式教程 #### 一、基础知识及准备 在深入探讨如何在Visual C++ 6.0(简称VC6)环境中调用动态链接库(DLL)文件中的函数之前,我们需要了解一些基础知识。 **1. 什么是DLL?** ...

    VC调用DLL中资源

    在VC++中,创建和使用DLL有几种方式,包括自动导出函数(__declspec(dllexport))和使用DEF文件定义导出。要调用DLL中的资源,我们需要以下步骤: 1. **创建DLL**: 在VC++中,选择新建项目 -&gt; Win32控制台应用...

    VC6.0DLL.zip_VC6.0 .dll_vc6 dll_vc6.0_vc6.0dll

    在主程序中使用LoadLibrary加载DLL,并通过GetProcAddress获取函数指针。 4. **调用DLL函数**:通过获取的函数指针来调用DLL中的函数。 5. **释放DLL**:在不再需要DLL时,使用FreeLibrary卸载DLL。 隐式链接和...

    VC6.0中,创建、调用 dll

    在Microsoft Visual C++ 6.0(简称VC6.0)中,开发和使用动态链接库(DLL,Dynamic Link Library)是一项重要的技能。DLL是一种可重用代码的库,允许多个应用程序共享同一份代码,从而节省内存并提高系统效率。这篇...

    VC下Dll的创建以及使用

    本文详细介绍了如何在 VC6 环境下创建和使用 DLL,包括 Win32 DLL 和 MFC DLL。通过这些步骤,开发者可以更好地理解和掌握 DLL 技术的应用。无论是隐式调用还是显式调用,都能帮助开发者有效地利用 DLL 来提高程序...

    VC6环境中LIB与DLL文件的使用

    6. **在客户端项目中使用DLL**:在需要使用DLL的客户端项目中,包括之前创建的头文件,并使用`LoadLibrary`和`GetProcAddress`等API函数来加载DLL并获取函数地址,从而调用DLL中的函数。 #### 3. 案例分析 案例2中...

    VC创建与使用DLL

    一 链接库概述 二 静态链接库 三 库的调试与查看 四 一个简单的DLL 非MFC动态库 五 MFC规则DLL Regular 六 MFC扩展DLL的创建 七 让EXE导出函数及DLL木马

    VC dll编程和使用例子

    VC DLL(动态链接库)编程是Windows平台下软件开发中的一个重要环节,主要用于代码复用和模块化设计。在本示例中,通过两个VS2005工程,我们能够学习到DLL的创建与使用方法。这包括如何定义导出函数、如何在应用程序...

    VC_6_DLL_小例子

    在VC_6中,创建DLL通常涉及以下步骤: 1. 创建一个新的DLL项目,选择相应的工程模板。 2. 编写DLL的接口,包括导出函数和类,这需要用到`__declspec(dllexport)`关键字。 3. 实现这些导出函数和类。 4. 编译生成DLL...

    VC6.0_DLL的使用

    接下来,我们要在另一个`.exe`程序中使用这个DLL: 1. **创建.exe项目**:同样在VC6.0中创建一个新的“Win32 Console Application”,命名为`dlltest`。 2. **链接DLL**:在`.exe`项目的“工程”-&gt;“设置”中,...

    Vc6.0中使用DLL和LIB举例

    在VC6.0中使用DLL和LIB涉及到动态链接库(Dynamic-Link Library,DLL)和静态链接库(Library,LIB)的创建与使用。下面将详细介绍如何在VC6.0环境下进行DLL和LIB的创建与使用。 首先,我们来看如何在VC6.0中创建...

    Delphi 调用VC生成的DLL

    1. **在VC中创建DLL**: - 首先,在VC中创建一个新的DLL工程。 - 定义导出函数,使用`extern "C"`来确保C语言的调用约定,这使得Delphi能够正确解析函数。使用`_declspec(dllexport)`关键字导出函数,例如`_...

    (完整版)vc6.0编写DLL文件及vb调用示例.docx

    1. **使用VC6.0验证**:创建一个新的Win32 Console Application项目,编写代码调用`plf.dll`中的`sq`和`cub`函数,编译运行,检查结果是否正确。 2. **使用VB验证**:在Visual Basic中,我们需要声明DLL中的函数,...

Global site tag (gtag.js) - Google Analytics