永发信息网

怎么用API远程调用dll

答案:2  悬赏:0  手机版
解决时间 2021-06-01 15:57
  • 提问者网友:树红树绿
  • 2021-06-01 07:53

我知道用LoadLibrary动态载入,但是我要调用的是其他目录我自己写的dll,怎么加上路径这些?

用GetProcAddress获得调用函数地址指针后要怎么传递参数啦?

有人说用汇编来压入参数,但是要怎么压勒?

上面工作都完了要怎么调用勒?

分不多只有20,期待好心人!!!

最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-06-01 08:41

可将DLL复制一份放到程序目录里就不用加路径


也可以LoadLibrary(_T("D:\\test\\test.dll"));  注意是两个\


既然是你自己写的函数,定义什么的不都是现成的吗?


用typedef定义一个函数指针,并声明一个变量


比如你函数是


int test( int a, int b);



typedef int (testfunc)(int a, int b);


testfunc  fun;


fun = (testfunc)GetProcAddress(xxxxx);


int x=1, y=2, z;


z = fun(x, y);  //传递参数


汇编的话要考虑你DLL函数的参数压入顺序。一般是从右至左压入


p = GetProcAddress(xxx);


__asm {


    pushad


    mov eax, y


    push eax


    mov eax, x


    push eax


    mov esi, p


    call esi


    mov z, eax


    popad


}


全部回答
  • 1楼网友:荒野風
  • 2021-06-01 09:04
jAVA 里面使用rmi 可以参考 java.rmi.* ;包里面的类容
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯