GCC 内嵌汇编实现动态调用 windows API

原创 2007年09月19日 10:20:00
 
 //测试...
 char* cap="你好世界";
 char* msg="这是个测试,你知道吗?";
 long hwnd=0;
 long flag=0;
 HINSTANCE lib=0;
 FARPROC proc=0;
 LPCSTR dll="user32";
 LPCSTR sproc="MessageBoxA";
 
 lib= LoadLibraryA(dll);
 proc=GetProcAddress( lib, sproc);
 
 printf("%x/n%x/n",lib,proc);
 
 asm volatile(
     "push %0/n/t"
     "push %1/n/t"
     "push %2/n/t"
     "push %3/n/t"
     "call *%4/n/t"
     :
     :"r"(hwnd),"r"(cap),"r"(msg),"r"(flag),"r"(proc)
     :"ebx"
 );

//也可以分开写
// asm volatile(
//     "push %0/n/t"
//     "push %1/n/t"
//     :
//     :"r"(hwnd),"r"(cap)
//     :"ebx"
// );
// asm volatile(
//     "push %0/n/t"
//     "push %1/n/t"
//     "call *%2/n/t"
//     :
//     :"r"(msg),"r"(flag),"r"(proc)
//     :"ebx"
// );
 
 
 FreeLibrary((HMODULE)lib);
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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