终于知道如何用LoadLibrary,但不知为什么!
我自己写的例子是:
#include <windows.h>
int main(int argc, char* argv[])
{
char *msvcrt = "msvcrt.dll";
__asm
{
mov eax, msvcrt
push eax
call dword ptr[LoadLibrary]
}
return 0;
}
哎,笨蛋试的例子.
为什么
printf
和
LoadLibrary
的调用方法不一样呢?
call dword ptr[printf]
会出错,而
call print
则正确.
原来是这样:
LoadLibrary是动态链接
printf是静态链接
静态链接只须call xxxxxxxx即可
动态链接必须call DWORD ptr [xxxxxxxx]
谢谢虾爷!
本文探讨了LoadLibrary和printf两种函数调用方式的区别,解释了为什么LoadLibrary需要使用call dword ptr,而printf可以直接使用call。通过一个具体的C语言示例程序,详细解析了动态链接与静态链接的不同之处。
6065





