我想在程序中动态的调用一个exe文件中的函数,请问有没有办法实现呀?

解决方案 »

  1.   

    导出就行了,
    跟 Dll 一样
      

  2.   

    怎样导出dll中一个或多个完整的类呢?我可以在应用程序中通过导出的类定义实例来进行操作。最好能具体一点。
      

  3.   

    HOOK钩子函数,进入到那个进程中,找出函数得地址
      

  4.   

    不能调用exe中的函数吧,去哪儿找.h文件啊。
      

  5.   

    to 飞扬:你的导出是什么意思?如果你知道dll能export的类或方法,你直接使用这些类或方法,就当它们已经存在就行了。关于dll的使用请参考如下专题:
    http://www.vckbase.com/document/viewdoc/?id=1116
      

  6.   

    能不能给出一个从exe文件中导出函数的例子呀?
      

  7.   

    首先先要得到该函数的在exe中的RVA地址,以及着个函数的调用方式(是stdcall调用规则还是C调用规则)EXE的IMAGEBASE是固定的,一般是0x00400000,而DLL的imagebase是远远大于这个值,所以EXE和DLL能被加载道统一进程的内存中,而地址不会冲突,就算有冲突,DLL有.reloc节,可以重定向,而EXE一般是没有.reloc节的,所以你的进程可能根本无法正确加载这个EXE文件。如果你调用的EXE中的函数没有用到全局变量还好说,要不然只能让你的EXE加载到小于0x0040000的地方了。如果你根本不熟悉PE文件及进程的内存结构的话,还是放弃吧
      

  8.   

    所谓调用一个函数,就是执行当前进程空间的一段代码,每个进程的地址空间都是独立的,相同位置的代码一般不会相同(如果不是同一个DLL的镜像),这个你想,该怎么调用啊
      

  9.   

    其实正规的方法就应该做成dll文件,从exe文件调用的确不科学。