是否可以以及如何编写自定义的lib库文件?

sunportjj 2003-08-19 04:24:47
我用的是vc6。0
想做一个脚本解释器
希望访问dll前可以查询到库中函数的参数个数和类型以及返回值以便调用前准备好入口参数。
系统提供的lib好像不行
可以编写一个自定义格式的lib文件吗?结合dll一起使用。
另外:是否可以修改系统生成的lib文件?它的格式是怎么样的?

ps:我是一个新手,不知这个方案是否可行?
...全文
231 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunportjj 2003-08-29
  • 打赏
  • 举报
回复
很久没来了
这个问题我已经绕过去了
楼上的方法早用过了,不过好像没达到目的:<
还是要多谢2位的热心解答:)
spbabyba 2003-08-23
  • 打赏
  • 举报
回复
你要写自己的def 文件,
lib /def:ufile.def /out:ufile.lib /machine:ix86
李_军 2003-08-23
  • 打赏
  • 举报
回复

常用工具:

TDump.exe-Delphi 4 和 C++ Builder 3 提供

Impdef.exe 和 Implib.exe - C++ Builder 3提供

DumpBin.exe-VC5.0提供

Lib.exe-VC5.0提供


VC调用Delphi的DLL



Delphi中的声名格式:

Function ShowDialog( hMainWnd:THandle; Msg:PChar ):integer; stdcall;

输出到Dll文件中时,名称不分裂。


VC中的调用格式:

extern "C" __declspec(dllimport) int __stdcall ShowDialog( HWND hwnd,char* Msg );

.如带有__stdcall,则要求Lib文件中对应函数名称分裂,可有以下步骤生成Lib文件:

.用Impdef.exe生成def文件,格式为:Impdef def文件名 dll文件名

.手工调制def文件参数,如ShowDialog改为ShowDialog@8

.用Lib.exe生成lib文件,格式为:Lib /def:def文件名

.如声名中无__stdcall,默认调用格式仍为stdcall,但不要求名称分裂,用以下批处理文件MkLib.bat可生成Lib文件:

@echo off

if %1.==. goto error

impdef %1.def %1.dll

lib /def:%1.def

goto end

:error

echo Usage: MkLib DllName

echo Note: Don't add extension ".dll" to parameter "DllName"

:end
sunportjj 2003-08-19
  • 打赏
  • 举报
回复
为什么没有人帮忙解答我的疑问?
是我没有说清楚还是点数太低?
呵呵
我都可以改嘛

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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