如何看出一个DLL是什么编的

longruliang 2009-07-08 09:24:42
公司程序需要用到一个DLL文件
现在需要更改,但我又不知道怎么重新编写
哪位高人告诉我一下怎么重新编写DLL啊
以及看出它用什么编写的
C 还是 什么。。。。
...全文
470 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixuer_20070803 2009-07-17
  • 打赏
  • 举报
回复
如果只有一个dll文件,没有源码的话可以用PEiD查下看是什么语言写的(如果有壳的话需要先做脱壳处理);
然后可以用LordPE查看输入输出表,找相应的函数,如果能了解该dll相应功能的话可以自己写个,如果不知道的话又没有源码想改的话就比较困难了……
longruliang 2009-07-14
  • 打赏
  • 举报
回复
没有具体点的呀。。。
大前置 2009-07-08
  • 打赏
  • 举报
回复

DLL动态链接库
VC、VB等都可以,但是一般如果没有特别处理,DLL编译出来的只能在对应的编译器使用


VC方法:

File->New->Project->Dynamic Link Library
也可以是其它形式的DLL库
chenzhp 2009-07-08
  • 打赏
  • 举报
回复
你可以使用vc6来编写

新建项目 “Win32 Dynamic-Link Library” 项目名称“Dll_1”,确定后选择“一个空的DLL工程”点击“完成”。


"MyDll.h" 文件里的内容

extern "C" _declspec(dllexport) int Max(int a, int b);
extern "C" _declspec(dllexport) int Min(int a, int b);

"MyDll.cpp"里的内容
#include"MyDll.h"
#include <stdio.h>

int Max(int a, int b)
{
if(a>=b) return a;
else return b;
}

int Min(int a, int b)
{
printf("Min is called\n\n");
if (a >= b) return b;

else return a;
}


然后把生的 .lib文件拷贝到另一个工程(要调用的DLL项目)的目录下,把.dll文件拷贝到另一个工程(要调用的DLL项目)的debug目录下

另一个项目的调用代码如下:

#pragma comment(lib,"MyDll.lib")
extern "C"_declspec(dllimport) int Max(int a,int b);
extern "C"_declspec(dllimport) int Min(int a,int b);




#include <stdio.h>
int main()
{
int a;
a = Min(8,10);
printf("比较的结果为%d\n",a);
return 0;
}

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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