如何用VC制作LIB文件??????

huangbeyond 2001-07-17 02:12:58
如何在VC下,编写和生成具备公用性质的LIB文件?
生成的效果要和VC自己带的一致。

因为我编写了一些函数,需要把它生成LIB,以便我下次使用,
也就是做成API。具体在VC中如何安排工程啊??

哪位高手会啊??请教教小弟!!!
...全文
929 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lianhuiyong 2001-07-22
  • 打赏
  • 举报
回复
我也建议做成dll使用听方便,而且又直观(有头文件)
wyzegg 2001-07-22
  • 打赏
  • 举报
回复
new "Win32 Static Library" project
函数需要加extern
luckboycjw 2001-07-22
  • 打赏
  • 举报
回复
听课兼蹭分~!:)
xiaomin235 2001-07-22
  • 打赏
  • 举报
回复
新建一个工程,选择MFC DLL工程,在第二步的三个选项中请选第二个,以建立一个常规的DLL,在你的每一个函数声明前请加上 __declspec(dllexport) ,这样就能导出函数以供其他程序访问。编译连接后就会生成一个lib文件。如果还是在VC里用,使用时请使用__declspec(dllimport) 导入函数声明,并在连接设置里加上的lib文件。
huangbeyond 2001-07-21
  • 打赏
  • 举报
回复
p
huangbeyond 2001-07-19
  • 打赏
  • 举报
回复
做成DLL是没有问题。
但是我不想把东西做得太大了。
而且,我也觉得DLL的函数调用,使用“显式调用”比较方便。
meifen 2001-07-19
  • 打赏
  • 举报
回复
4
roland_c 2001-07-19
  • 打赏
  • 举报
回复
做成DLL不好吗?包含一个头文件,加上LIB文件,就可以使用所有的函数了。
strangecat 2001-07-19
  • 打赏
  • 举报
回复
建议还是尽量用DLL,本猫感觉用LIB不很方便--而且DLL不大呀.
Kevin_qing 2001-07-19
  • 打赏
  • 举报
回复
编译出.obj
执行命令
lib xxx.obj /out:your.lib

需要注意的是.obj的编译方式(debug or release/multi or single threaded)对产生的lib有影响。所以建议对每个.obj built 4种版本。
liujie72 2001-07-18
  • 打赏
  • 举报
回复
在.def文件中写上提供的接口函数。
functioname @1
functioname @2
...
wjyasd 2001-07-18
  • 打赏
  • 举报
回复
我原来作过 一个菜单的LIB (DOS)

DOS环境中
1 编写 。C文件
2 编译成 。OBJ 文件
3 使用TCLIB 将。OBJ 文件连接成 。LIB文件

huangbeyond 2001-07-18
  • 打赏
  • 举报
回复
谢谢上面大家的帮忙。
真感激!!!!!!!!!!!!


可是,我却想做成想以前的TC所使用的LIB文件那样,
如何制作呢????
strangecat 2001-07-17
  • 打赏
  • 举报
回复
本猫总用STATIC LIB,怎么没遇到什么问题呀?
如果你要把生成的库在SDK和MFC里面用,只要在头文件里写上
#IFDEF CPLUSPLUS就行了,没什么特别需要注意的.
APIer 2001-07-17
  • 打赏
  • 举报
回复
哎,做lib如果使用mfc,使用的时候,连接是个大问题,经常连接不到一些函数,不知道做lib的时候需要哪些设置,才能保证MFC和SDK下面都能够正常使用:)
周末有时间看一看编译器关于lib的设置
zminhao 2001-07-17
  • 打赏
  • 举报
回复
听课
lpt 2001-07-17
  • 打赏
  • 举报
回复
生成一个空的 WIN32 STATIC LIBRARY 把需要的类或者函数加入工程,编译即可,
也可以选择是生成静态库,或者动态库,如果不用MFC那自然就是静态库了。
会思考的草 2001-07-17
  • 打赏
  • 举报
回复
指定用静态连接到MFC即可。
WhiteWaterBlueSky 2001-07-17
  • 打赏
  • 举报
回复
Yes!
new "Win32 Static Library" project!
In MSDN, type "static libraries" and select creating,
It is very particular!
NowCan 2001-07-17
  • 打赏
  • 举报
回复
new "Win32 Static Library" project
加入你的文件,编译链接成lib,同时提供必要的头文件,应用的时候注意加上这个lib。
另外,API函数是DLL吧。
加载更多回复(3)
MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o gcc -c a.c c -> exe gcc a.c libs.o -o a.exe (从主程序a.c,附加libs,生成a.exe) o -> exe gcc a.o b.o ... -o main.exe c -> dll,def,a gcc a.c -shared -o a.dll -Wl,--output-def,a.def,--out-implib,liba.a a -> dll a2dll liba.a dll -> a: dlltool --dllname a.dll --def a.def --output-lib liba.a (需要def文件) a -> def: dumpbin /exports lib.a > lib.def (在windows上调用,def需要修改) dll -> def : pexports a.dll -o > a.def (这里的-o是指给函数标序号) lib -> def : reimp -d a.lib lib -> a: (for __cdecl functions in most case) reimp a.lib; (for __stdcall functions) MSVC: c -> lib cl /LD a.c (注意已经定义了export列表) c -> dll cl /LD a.c c -> obj cl /c a.c c -> exe cl a.c /out:a.exe dll ->lib lib /machine:ix86 /def:a.def /out:a.lib (需要def文件) obj ->lib lib a.obj b.obj... /out:mylib.lib dll ->def DUMPBIN a.dll /EXPORTS /OUT:a.def (生成的def需要做修正) lib ->def reimp -d a.lib (这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。 dll和exe都是PE文件,所以可以使用pexports. lib和a是静态库文件,都是归档类型,不是PE格式。所以不能使用pexports. dll可以使用dlltool. lib可以使用lib, 和reimp(lib->a工具) 所有的bin文件,包括dll,exe,lib,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs http://oldwiki.mingw.org/index.php/CreateImportLibraries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.cpp #include #include #include "mylib.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. mylib.cpp #include #include #include "mylib.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. mylib.h #define EXPORT __declspec(

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧