用VC写Assembly代码(5) --函数调用(二)

原创 2006年06月07日 19:06:00

终于知道如何用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]

谢谢虾爷!

相关文章推荐

使用DbgHelp获取函数调用堆栈之inline assembly(内联汇编)法

如果想自己获取应用程序的Call Stack,就需要查看Stack的内容。Stack Walker,在最近查看SSCLI源码的时候发现这个东西是和Stack Frame紧密联系在一起的。 Walki...
  • weiqubo
  • weiqubo
  • 2013年12月04日 16:35
  • 1180

VC++中的函数调用(CALLBACK WINAPI PASCAL 等)

#define   CALLBACK         __stdcall    #define   WINAPI             __stdcall    #define   WINAP...

VC 资源和函数调用

资源  凡是运用程序要用到数据就叫资源。  资源是被链入运用程序当中的,但有时看不见资源,只有一个exe文件,这是因为资源已经被链入可执行文件中去了,也就是说,资源被编译为二进制文件,像源...

通过VC学习反汇编——函数调用

1         参数传递(默认调用约定) 用VC6.0新建一个空的控制台应用程序,新建源文件main.c,编写如下代码,注意用debug编译,不要用release,以免代码被VC优化,反汇编对应...
  • gyh198
  • gyh198
  • 2011年10月17日 20:05
  • 1393

VC++自释放指针、自释放虚拟内存、自关闭句柄、局部作用域回调函数调用等辅助开发类

VC++自释放指针、自释放虚拟内存、自关闭句柄、局部作用域回调函数调用等辅助开发类...

VC++函数调用过程汇编分析(基于vs2012)

本文将在VS2012环境下对函数调用过程的汇编代码进行分析。分析不到位或者存在错误的地方请批评指正,请与作者联系。 我们对下面最简单的这种函数调用进行分析。 int test(int a,int b)...
  • jedihy
  • jedihy
  • 2013年12月09日 16:08
  • 954

通过VC学习反汇编——函数调用:调用约定

3 调用约定 调用约定决定了以下内容:函数参数的压栈顺序、由调用者还是被调用者平衡堆栈。 3.1 __cdecl __cdecl是C和C++程序的默认调用约定:参数通过堆栈来传递,从右向左依次入...
  • gyh198
  • gyh198
  • 2011年10月20日 13:10
  • 1397

5、简化函数调用

1、Rename Method(函数改名)     2、Add Parameter (添加参数)     3、Remove Parameter(移除参数)     4、Separat...
  • wqetfg
  • wqetfg
  • 2016年04月06日 12:47
  • 551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用VC写Assembly代码(5) --函数调用(二)
举报原因:
原因补充:

(最多只允许输入30个字)