请问EXE的导出函数是干什么的?

julyclyde 2002-08-14 08:06:49
那天用Borland的TDUMP.EXE发现EXE居然也有导出函数
是干什么用的啊?
...全文
64 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
julyclyde 2002-09-04
  • 打赏
  • 举报
回复
失望!
djwinter 2002-08-19
  • 打赏
  • 举报
回复
学习中
glassshark 2002-08-15
  • 打赏
  • 举报
回复
许多EXE本身也是DLL。
julyclyde 2002-08-15
  • 打赏
  • 举报
回复
我就是把EXE给Load进来了才出错的
stuart 2002-08-15
  • 打赏
  • 举报
回复
安全不同
.exe调用出错,程序还比较安全
.dll调用出错,
......
天知道会发生什么
eastxing 2002-08-15
  • 打赏
  • 举报
回复
up
julyclyde 2002-08-15
  • 打赏
  • 举报
回复
我刚才用一下EXE的导出函数,结果又是访问冲突。真不知道是不是我的编译器有毛病:
EXEDLL的代码:#include <iostream>
using namespace std;

extern "C" __declspec(dllexport) void print(void){

cout<<"function print executed";

}

void main(){}
编译为exedll.EXE

然后:
#include <windows.h>
void main(){
HINSTANCE i=LoadLibrary("exedll.exe");
if (i!=NULL) {GetProcAddress(i, "print")();}
}


结果是访问冲突。
潘李亮 2002-08-15
  • 打赏
  • 举报
回复
文件只有在执行起来的时候,就是说被操作系统的加载器加载的时候,它才成为进程
潘李亮 2002-08-15
  • 打赏
  • 举报
回复
一个DLL在实质上说和一个EXE文件没有很大的区别,文件的扩展名不同而已。

一个动态库是不能作为一个进程来启动的。
但是一个 可执行文件可以。他们都是 PE格式的。所以他们都可以导出函数,
如果你愿意,你也可以把一个原来叫EXE的文件改个扩展名,叫什么.plg .dll什么的.随便你自己叫了
julyclyde 2002-08-15
  • 打赏
  • 举报
回复
那怎么使用的?也是用LoadLibrary吗?
EXE不是单独进程嘛,用LoadLibrary会不会有问题?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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