社区
VC.NET
帖子详情
关于“_stdcall”关键字的定义问题
Cash0627
2005-07-21 08:25:45
我在《visual c++.net语言参考手册》一书中看到“_stdcall”关键字,其中有些描述不太懂,希望高手帮忙解释一下:
1、堆栈维护责任:
被调用的函数从堆栈中弹出自己的参数
2、命名修饰约定:
在名称前加上下划线:将@符号以及后面的参数列表的字节数(十进制)加到名称后。因此,声明为int func(int a,double b)的函数经过修饰后变为:_func@12
...全文
97
1
打赏
收藏
关于“_stdcall”关键字的定义问题
我在《visual c++.net语言参考手册》一书中看到“_stdcall”关键字,其中有些描述不太懂,希望高手帮忙解释一下: 1、堆栈维护责任: 被调用的函数从堆栈中弹出自己的参数 2、命名修饰约定: 在名称前加上下划线:将@符号以及后面的参数列表的字节数(十进制)加到名称后。因此,声明为int func(int a,double b)的函数经过修饰后变为:_func@12
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vrace
2005-07-22
打赏
举报
回复
这个只是众多调用方式中的一种。如果你不用汇编,或者你不搞破解,没必要研究它。
比如说,一个 stdcall 的函数 MessageBox
/* C code */
MessageBox(0, "Hello", "Hi", MB_OK);
用汇编就是(类似哈,用汇编当然不是这样写的)
push MB_OK
push offset szHi
push offset szHello
push 0
call MessageBox
再如, printf 函数,是另一种调用方式
/* c code */
printf("Test %s", aaa);
; asm
push 0
push offset szTest
call printf
add esp, 4 *2
自己看看
TEST DLL (__
std
call)
标题中的“TEST DLL (__
std
call)”指的是一个关于创建和使用使用`__
std
call`调用约定的动态链接库(DLL)的技术主题。在Windows操作系统中,DLL是一种可共享的代码库,程序可以在运行时调用其中的函数来实现特定...
动态链接库(
std
call def 等等)(博客相关代码)
动态链接库(DLL,Dynamic Link Library)是Windows操作系统中一个重要的特性,它允许...在实际工作中,你可能会遇到各种关于DLL的
问题
,如版本冲突、加载失败等,因此对DLL机制有深入的理解对于
问题
排查和解决至关重要。
C++builder调用VCdll.pdf
方法一是在VC中编译C文件生成DLL时,输出函数头文件加上extern "C"{}
关键字
,并在函数声明和
定义
处加上调用约定描述符__cdecl。方法二是在C++builder中使用implib命令行工具生成.lib文件,并将其加入到工程中。 ...
vc调用dev-c++动态链接库dll示例
在VC中,这通常意味着修改函数声明,使用`__
std
call`
关键字
。如果DLL已经
定义
为`__
std
call`,则VC中对应的函数原型也应该如此。例如: ```cpp extern "C" void __
std
call MyFunction(int, char*); ``` 3. **...
VC++使用
关键字
_declspec (dllexport)导出函数
- 在DLL的
定义
文件(如`mydll.h`)中,使用预处理器宏`MY_DLL_EXPORTS`来决定使用哪个
关键字
。在DLL的源文件中,`MY_DLL_EXPORTS`通常被
定义
,而在使用DLL的客户端代码中则不
定义
。 3. **使用DLL**: - 在使用DLL...
VC.NET
7,539
社区成员
27,671
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章