`
JavaFans
  • 浏览: 88901 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DLL Project的def文件中的LIBRARY描述字

阅读更多
使用Visual Studio DLL Wizard生成的DLL项目,会生成def文件,描述你在DLL中暴露的函数:
LIBRARY	"ANameDLL"
EXPORTS
   MyFunc1 @1
   MyFunc2 @2

这里的LIBRARY这行最好删掉,理由如下:
如果你的DLL项目是某个大项目的子项目,并想在Debug模式下面也有Debug模式,那么必须将上面那行删掉。
否则:Visual Studio会使用它,将所有用到了该项目的exe的依赖关系设置为ANameDLL.dll,不管是Debug模式还是Release模式。
尽管在VCprojects文件指定:MyExeD.exe在link的时候,会link ANameDLLD.lib,并且ANameDLL在Debug模式下面生成了ANameDLLD.lib和ANameDLLD.dll。但是MyExeD.exe在运行的时候,它会去找ANameDLL.dll,而不是ANameDLLD.dll。因此MyExeD.exe 的Debug将运行不了。通过depends工具可以看到这个依赖关系。


背景知识,MSDN关于DLL的描述:
http://msdn.microsoft.com/en-us/library/d91k01sh(v=VS.80).aspx
分享到:
评论
3 楼 ray_linn 2010-05-17  
JavaFans 写道
ray_linn 写道
把ANameDLLD.dll改个名就得了呗。

改名字能够运行起来,但是如果把那行删掉,不需要改名字,一劳永逸。



def本来就不是干这个用的...
2 楼 JavaFans 2010-05-14  
ray_linn 写道
把ANameDLLD.dll改个名就得了呗。

改名字能够运行起来,但是如果把那行删掉,不需要改名字,一劳永逸。
1 楼 ray_linn 2010-05-14  
把ANameDLLD.dll改个名就得了呗。

相关推荐

    win32命令行用def文件生成dll文件(C语言)

    本篇文章将详细介绍如何使用`def`文件在Win32命令行环境下创建DLL文件,主要针对C语言编程。 首先,`def`文件是一种特殊的文本文件,用于定义DLL的导出函数、版本信息和其他特性。在创建DLL时,`def`文件是不可或缺...

    DLL Project的源代码及测试项目

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种可重用的代码库,允许多个应用程序共享同一段代码和数据。DLL项目是学习Windows编程和系统级开发的关键环节,尤其是对于初学者而言,它...

    VC.DLL.Project.test.project.code.rar_project

    在IT行业中,VC.DLL通常指的是使用Visual C++编译器创建的动态链接库(Dynamic Link Library)。DLL文件是Windows操作系统中的一个重要组成部分,它允许多个程序共享同一块内存空间中的代码和数据,从而节省资源并...

    在VC中创建DLL文件的方法和步骤(win32和MFC完整实例).doc

    - 新建一个`WIN32 Dynamic-link Library`工程,命名为`MyDll`,选择`A simple DLL project`类型。 - 编写`MyDll.h`头文件,包含对外公开的函数声明,例如: ```cpp extern "C" _declspec(dllexport) int sum(int...

    在VC中创建DLL文件的方法步骤祥解

    在VC(Visual C++)环境中创建DLL(Dynamic Link Library)文件是开发过程中的常见任务,它允许代码复用和模块化。DLL文件可以被多个应用程序共享,减少了内存占用和程序启动时间。本篇文章将详述如何在VC中创建Win...

    Vc6.0中使用DLL和LIB举例

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

    VS2010 C++环境下DLL和LIB文件目录及名称修改.docx

    在`.def`文件中,将`LIBRARY "BaseTool"`更改为`LIBRARY "BaseToold"`,确保导出库的名称与生成的库文件名一致。 3. **库目录和包含目录**: - “附加库目录”和“VC++目录”的“库目录”设置决定了编译器在何处...

    Win32Project1

    2. **定义导出**:DLL中的函数或类需要被其他程序调用,必须通过`__declspec(dllexport)`关键字或DEF文件来声明为导出。导出函数的示例: ```cpp extern "C" __declspec(dllexport) void MyFunction(void); ``` ...

    C语言的DLL编写与调用.pdf

    项目文件中包含了FourthSample.def文件,该文件是模块定义文件,它描述了DLL的入口点、输出函数以及其他属性。此外,项目中还包含了FourthSample.cpp,这是DLL的实现文件,包含了DLL的主要逻辑代码。关于如何编写...

    VC工程演示对sqlite数据库的操作,包含SQLite3文件!

    VC中使用sqlite SQLite官方下载只提供给我们一个sqlite3.dll...将sqlite3.lib加入到工程链接中,Project->Settings,Link选项卡,Object/library modules最后添入sqlite3.lib D:\sqlitedll-3_6_23里有.dll和.def文件

    BCB调用VC的DLL

    - 解决方案是创建一个`.def`文件,定义DLL中导出的函数及其别名,并将其添加到BCB项目中。 ```cpp LIBRARY XXX.DLL IMPORTS @BCBLoadVCWin32Fastcall=VCWIN32.@BCBLoadVCWin32Fastcall@0 _BCBLoadVCWin32Cdecl=...

    dll的创建与使用 dll的创建与使用 dll的创建与使用

    创建DLL主要有两种方法:非MFC(Microsoft Foundation Classes)DLL和使用.def文件。 1. **非MFC DLL创建步骤**: - 打开Visual Studio,选择`File` -> `New` -> `Project`,然后选择`Win32 Dynamic-Link Library`...

    VS2008_dll

    为了生成DLL文件,还需要一个描述文件(`symexport.def`),其中列出了需要导出的所有符号: ```plaintext LIBRARY "MyDllTest" EXPORTS GetMyDllVerion ``` 编译后,会生成`MyDllTest.dll`和`MyDllTest.lib`两个...

    VC下Dll的创建以及使用

    在生成的 MFC DLL 工程中,可以在 `MFCDll.cpp` 文件中添加需要导出的函数,并在 `MFCDll.def` 文件中指定导出的函数。 ```cpp // MFCDll.cpp: Defines the entry point for the DLL application. // #include ...

    DLL接口导出.rar

    DLL(Dynamic Link Library)是Windows操作系统中的一个重要组成部分,它是一种可执行文件格式,允许多个程序共享同一段代码和数据,从而节省系统资源。在本文中,我们将深入探讨DLL接口导出的相关知识,以及如何...

    C语言的DLL编写与调用.docx

    此外,还需要在对应的`.def`文件(如`FourthSample.def`)中添加这些函数的导出声明,以确保它们在生成的DLL中可见: ``` LIBRARY FourthSample EXPORTS MyDllFunction @1 ``` 编译源文件时,可能会遇到错误。...

    VC++中建立MEX文件及调试

    MEX文件(扩展名为.mexw32或.mexw64)是一种特殊的动态链接库(DLL),它允许用户在MATLAB环境中调用C/C++编写的代码。这种特性极大地扩展了MATLAB的功能,使得开发人员能够在保持MATLAB易用性的同时,利用C/C++的...

    sqlite3在Visual studio 2012下的编译

    Visual studio 2012 下 sqlite3的工程文件,生成32或64位的sqlite3库 This page explains how to compile SQLite with Microsoft Visual Studio.NET (aka VS.NET). Download Download and unzip the file sqlite_...

    BCB调用matlab的dll的方法总结

    - 在Matlab命令窗口中输入以下命令来生成DLL及相关的文件: ```matlab mcc -Bcsgl sharedlib:myfunction myfunction.m ``` - 该命令会生成五个文件:`myfunction.c`, `myfunction.h`, `myfunction.dll`, `...

    C++与Matlab混合编程

    - 在项目属性中指定DEF文件路径:`Project > Project Properties > Linker > Input > Module Definition File`。 - 修改输出文件的扩展名为`.mexw32`:`Project > Project Properties > Linker > General > Output ...

Global site tag (gtag.js) - Google Analytics