我想通过命令行或批处理文件调用Windows DLL的导出。 DLL为winscard.dll
,位于\windows\system32
。
但我不想使用RUNDLL或RUNDLL32,因为我想调用的函数没有RUNDLL32调用的标准签名。
签名必须如下:
void CALLBACK EntryPoint(
HWND hwnd,
HINSTANCE hinst,
LPSTR lpszCmdLine,
int nCmdShow);
所以我正在寻找一种不同的方式来调用这些功能。有没有人这样做过?
答案 0 :(得分:0)
试试这个:http://pastebin.com/U8XvZsvA(如果链接不起作用:https://paste.ee/p/clnzM)
与GCC汇编。
像rundll winscard.dll EntryPoint [arguments in order from left to right]
一样使用它。
要传递一个字符串参数,请在其前面添加.
,否则它将被视为数值(由strtol
识别)。
当然,如果函数接受指针参数,它很可能不起作用,你不能从命令行传递它。您可以编辑代码以满足您的需求,但可能无法通过批处理文件执行您想要执行的操作。