需要RUNDLL32的替代方法来调用DLL

时间:2015-11-16 07:31:58

标签: batch-file dll dllexport rundll32

我想通过命令行或批处理文件调用Windows DLL的导出。 DLL为winscard.dll,位于\windows\system32

但我不想使用RUNDLL或RUNDLL32,因为我想调用的函数没有RUNDLL32调用的标准签名。

签名必须如下:

void CALLBACK EntryPoint(
    HWND hwnd, 
    HINSTANCE hinst,
    LPSTR lpszCmdLine, 
    int nCmdShow);

所以我正在寻找一种不同的方式来调用这些功能。有没有人这样做过?

1 个答案:

答案 0 :(得分:0)

试试这个:http://pastebin.com/U8XvZsvA(如果链接不起作用:https://paste.ee/p/clnzM

与GCC汇编。

rundll winscard.dll EntryPoint [arguments in order from left to right]一样使用它。

要传递一个字符串参数,请在其前面添加.,否则它将被视为数值(由strtol识别)。

当然,如果函数接受指针参数,它很可能不起作用,你不能从命令行传递它。您可以编辑代码以满足您的需求,但可能无法通过批处理文件执行您想要执行的操作。