VC创建Def文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC创建Def文件相关的知识,希望对你有一定的参考价值。

人家说制作DLL需要Def做导出。。那Def文件在VC向导里怎么创建?

你建一个文本文件,然后把后缀名.txt改成.def 加载到项目里就可以,而且用def文件作导出是一种方法,另外你还可以声明导出函数。 参考技术A 新建一个MFC ActiveX ControlWizard 工程,就会自动生成一个.def文件,内容如下:
*.def : Declares the module parameters.
LIBRARY "*.OCX"
EXPORTS
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE

lib.exe 根据.def文件生成.LIB文件(SQLite3)

从网上下载的一般都是SQLite3.dll和SQLite3.def文件,而在VC++6.0下还需要使用.lib文件。 所以,我们首先需要自己生成.lib文件。
生成的方法是:

第一步:找到LIB.EXE所在目录

一般都在C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023inHostx64x86
下(如果VC是装在C盘的话),在“运行”中输入cmd,然后切换到该目录下

第二步:使用LIB命令生成.lib文件

很多网页上都介绍,使用LIB /DEF:sqlite3.def /machine:IX86即可生成,可是我使用它时遇到一些小问题。

这里就不说了,说说应该注意的几点问题吧。第一个,你的sqlite3.def要是没有在
C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023inHostx64x86下,
需要写全路径;第二,为了清楚起见,你需要注明.lib文件的输出路径。下面我给出一个完整的命令行:

C:Program Files (x86)Microsoft Visual Studio2017EnterpriseVCToolsMSVC14.16.27023inHostx64x86>LIB /out:D:sqlite3.lib /MACHINE:IX86 /DEF:D:sqlite3.def

运行完这个命令后,你会在D:下发现sqlite3.lib和sqlite3.exp两个文件。
我出的问题就是没有设置/out:D:sqlite3.lib ,
导致我运行后,找不到sqlite3.lib和sqlite3.exp这两个文件,即使我整台机器作了搜索!

以上是关于VC创建Def文件的主要内容,如果未能解决你的问题,请参考以下文章

VC2010 利用 def 文件生成 dll 文件的方法

VC2010 利用 def 文件生成 dll 文件的方法 转载

VC 快速创建多层文件夹

vc 判断目录是不是存在 创建

VC使用sqlite

Visual Studio 中的vc++ 2005创建一个C++的项目,求有多线程的例子!!!