E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
__thiscall
函數調用方式: Stdcall Cdecl Fastcall WINAPI CALLBACK PASCAL
Thiscall
Fortran Syscall Declspec(Naked)
函數調用方式:StdcallCdeclFastcallWINAPICALLBACKPASCALThiscallFortranSyscallDeclspec(Naked) 现代的编程语言的函数竟然有那麽多的调用方式。这些东西要完全理解还得通过汇编代码才好理解。他们各自有自己的特点其实这些调用方式的差别在主要在一下几个方面1.参数处理方式(传递顺序,存取(利用盏还是寄存器))2.函数的结尾处理方
兔子的技术博客
·
2010-07-02 14:00
函数调用的区别__stdcall,__cdecl,__fastcall,
thiscall
,naked call
函数调用的区别__stdcall,__cdecl,__fastcall,
thiscall
,nakedcall(转)藏 左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(
xiaoguozi's Blog
·
2010-07-01 09:00
Inline HOOK API 改进版(hot-patching)
而且hook与unhook当时设计成了
thiscall
,因
masefee
·
2010-06-11 15:00
api
byte
hook
DST
RAII
winapi
Inline HOOK API 改进版(hot-patching)
而且hook与unhook当时设计成了
thiscall
,因
masefee
·
2010-06-11 15:00
api
职场
c/c++
inline
hook
休闲
【转】__stdcall,__cdecl,__fastcall,
thiscall
,naked call的一些概念
概述被这些修饰关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall的前面部分由ecx,edx传),函数调用在返回前要清理堆栈,但由调用者还是被调用者清理不一定。MFC缺省调用约定1、_stdcall是Pascal方式清理C方式压栈,通常用于Win32Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参
LuckilyYu
·
2010-05-16 23:00
c
汇编
pascal
编译器
keyboard
winapi
一个C++错误率极高的解决办法,unresolved external symbol
错误描述:Error 1 error LNK2019: unresolved external symbol "public: __
thiscall
_PssResultRect::_PssResultRect
beyondjhf_2008
·
2010-05-10 10:00
C++
c
C#
使用非静态函数做为线程函数
大家知道,pthread_create()函数的线程函数必须是静态的函数,以标准的__cdecl的方式调用的,而C++的成员函数是以__
thiscall
的方式调用的,相当于一个普通函数有一个默认的
guoxiaojie_415
·
2010-04-20 17:00
thread
c
null
常用函数调用约定
stdcall/cdecl/fastcall/
thiscall
/nakedcallstdcall调用约定stdcall很多时候被称为pascal调用约定,因为pascal是早期很常见的一种教学用计算机程序设计语言
houapple
·
2010-03-13 10:00
error C2440: 'static_cast' : cannot convert from 'void (__
thiscall
CTrunkPage::* )(void)' to 'void (_
xpsp3vs2005sp1英文版 错误:errorC2440:'static_cast':cannotconvertfrom'void(__thiscallCTrunkPage::*)(void)'to'void(__thiscallCCmdTarget::*)(NMHDR*,LRESULT*)'2> Noneofthefunctionswiththisnameinscopematc
a117653909
·
2010-03-02 10:00
c
XP
WIN32编程:__stdcall,__cdecl,__fastcall,
thiscall
__cdecl和__stdcall都是函数调用规范(还有一个__fastcall),规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言通信的时候就要注意了,只有用相同的方法才能够调用成功.另外,像printf这样接受可变个数参数的函数只有用cdecl才能够实现. __declspec主要是用于说明DLL的引出函数的,在某些情况下用__decls
cumirror
·
2010-02-03 10:00
编程
dll
语言
Delphi
pascal
winapi
解决unresolved external symbol "protected: virtual struct AFX_EVENTSINKMAP const * __
thiscall
错误。
刚开始学习VC++,对它的东西都不懂,其中最使用DECLARE_EVENTSINK_MAP时出现了一个错误,Linking...LegendWin.obj:errorLNK2001:unresolvedexternalsymbol"protected:virtualstructAFX_EVENTSINKMAPconst*__thiscallCLegendWin::GetEventSinkMap(
wesleyluo
·
2009-11-27 16:00
struct
The usage of __Stdcall, __cdecl,
thiscall
and __fastcall
被这些修饰关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall的前面部分由ecx,edx传),函数调用在返回前要清理堆栈,但由调用者还是被调用者清理不一定。1、_stdcall是Pascal程序的缺省调用方式,通常用于Win32Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。intf
kylin_p
·
2009-11-05 23:00
c
汇编
mfc
pascal
编译器
winapi
error C2556: 'void __
thiscall
......overloaded function differs only by return type from 'int __
thiscall
此错误说明的是:重载函数仅仅只有返回类型不同 这在c++中是不允许的所以报出错信息 其实我并没有要将函数重载 classa{ voidFunc(void); } classb{ frienda::Func(void); // 应为friendvoida::Func(void); } 编译器查找啊a::函数找到void Func(void)没有找到完全一样的,故而以为要重载
shuilan0066
·
2009-09-28 10:00
c
function
Class
编译器
error LNK2001: unresolved external symbol "public: virtual __
thiscall
CppUnit的解决办法
在path路径配好之后,注意修改工程-》设置-》连接选项卡->>在"对象/库模块"中添加cppunitd.lib 类包.变成下面类似的工程选项cppunitd.libkernel32.libuser32.libgdi32.libwinspool.libcomdlg32.libadvapi32.libshell32.libole32.liboleaut32.libuuid.libodbc32.lib
enotswn
·
2009-09-05 09:00
常用的函数调用约定 stdcall/cdecl/fastcall
http://www.cnblogs.com/wangweixf/archive/2009/04/13/1434901.html stdcall/cdecl/fastcall/
thiscall
/nakedcallstdcall
dux003
·
2009-08-19 13:00
function
汇编
Microsoft
pascal
编译器
winapi
,__stdcall,__cdecl,__fastcall,
thiscall
,naked call,__pascal
转自http://www.zxbc.cn/html/20070429/9041.html1、_stdcall是pascal程序的缺省调用方式,通常用于win32api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。vc将函数编译后会在函数名前面加上下划线前缀,在函数名后加上/"@/"和参数的字节数。2、c调用约定(即用__cdecl关键字说明)按从右至左的顺序压参数入栈,由调用者把参数弹出栈
weide001
·
2009-06-10 13:00
c
mfc
pascal
编译器
generation
winapi
函数命名规则及调用约定:__stdcall,__cdecl,__fastcall,
thiscall
,naked call
1.被这些修饰关键字修饰的函数,其参数都是从右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。_stdcall是Pascal程序的缺省调用方式,通常用于Win32Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。VC将函数编译后会在函数名前面加上下划线前缀,在函数名后加上"@"和参数的字节数。 2、C调用约定
jonathandj
·
2009-05-09 17:00
DLL中调用约定和名称修饰(二)
thiscall
只能被编译器使用,没有相应的关键字,因此不能被程序员指定。
ps_e_udo
·
2009-05-04 11:00
c
汇编
dll
callback
编译器
winapi
如果你是编程新手,你确信对系统栈结构有所了解吗?
__cdecl,__stdcall,__
thiscall
与栈有什么直接的联系? 汇编对你的工作兴许没什么帮助,但我还是请求你看完下面的示例,看看下面的分析,你会从中看懂你应该懂得的东西。
congfeng02
·
2009-04-30 13:00
编程
C++
c
C#
Go
error C2556: 'void __
thiscall
::sendCommand1(unsigned int,const char *,int)' : overloaded function differs
errorC2556:'void__
thiscall
::sendCommand1(unsignedint,constchar*,int)':overloadedfunctiondiffersonlybyreturntypefrom'int
gengxt2003
·
2009-04-27 11:00
c
function
basic
Types
error LNK2001: unresolved external symbol "public: void __
thiscall
CDvrRecordOpt::Terminate(void)"
errorLNK2001:unresolvedexternalsymbol"public:void__thiscallCDvrRecordOpt::Terminate(void)" 刚才在调试过程中发现这个问题i问题在于CDvrRecordOpt的类文件没有包含进工程中。切记
gengxt2003
·
2009-04-24 09:00
error LNK2001: unresolved external symbol "public: int __
thiscall
CFtProtocolThread::getFnIds(class _
errorLNK2001:unresolvedexternalsymbol"public:int__thiscallCFtProtocolThread::getFnIds(class_STL::vector>&)"(?getFnIds@CFtProtocolThread@@QAEHAAV?$vector@HV?$allocator@H@_STL@@@_STL@@@Z)
gengxt2003
·
2009-04-23 09:00
vector
Class
函数调用方式--__
thiscall
调用方式和__cdecl,__stdcall有什么区别
函数调用方式--__
thiscall
调用方式和__cdecl,__stdcall有什么区别首先,__
thiscall
是关于类的一种调用方式,它与其他调用方式的最大区别是: __
thiscall
对每个函数都增加了一个类指针参数
cs_lht
·
2009-02-27 11:00
_cdecl,_stdcall,PASCAL,_fastcall,_
thiscall
_cdecl,_stdcall,PASCAL,_fastcall,_
thiscall
_cdecl是CDeclaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除
winlinglin
·
2008-12-15 22:00
error C2440: “static_cast”: 无法从“UINT (__
thiscall
CTestDlg::* )(CPoint)”转换为
从vc6转移到vs2005 发生下面问题: BEGIN_MESSAGE_MAP(CTestDlg, CCaptionBtnDlg) ON_WM_NCHITTEST() //vs2005 检测错误在这里 END_MESSAGE_MAP() afx_msg UINT OnNcHitTest(CPoint point); UINT CTestDlg::OnNcHitTest
immcss
·
2008-11-28 12:00
c
关于调用约定(cdecl、fastcall、、
thiscall
) 的一点知识
函数调用规范 当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或
qinzhonghello
·
2008-11-19 10:00
function
汇编
Microsoft
语言
pascal
编译器
error C2440:CMainFrame 无法从 NMTOOLBARA 转换为 NMHDR
问题: 将一个项目由vc6转到vc7下面,ON_NOTIFY的NMTOOLBAR老是提示错误 error C2440: “static_cast” : 无法从“void (__
thiscall
CMainFrame
immcss
·
2008-06-12 16:00
c
关于调用约定(cdecl、fastcall、stcall、
thiscall
) 的一点知识
当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或者函
laruence
·
2008-05-01 20:00
function
汇编
Microsoft
语言
pascal
编译器
DLL中调用约定和名称修饰(二)
thiscall
只能被编译器使用,没有相应的关键字,因此不能被程序员指定。
michaelrun
·
2008-01-30 14:00
C++
汇编
dll
callback
编译器
winapi
转:关于调用约定(cdecl、fastcall、、
thiscall
) 的一点知识
转:关于调用约定(cdecl、fastcall、、
thiscall
)的一点知识引用:http://www.cppblog.com/oosky/archive/2007/01/08/17422.html函数调用规范当高级语言函数被编译成机器码时
Welcome to ErranLi's Blog!
·
2007-10-14 00:00
函数调用方式--__
thiscall
调用方式和__cdecl,__stdcall有什么区别
函数调用方式--__
thiscall
调用方式和__cdecl,__stdcall有什么区别首先,__
thiscall
是关于类的一种调用方式,它与其他调用方式的最大区别是: __
thiscall
对每个函数都增加了一个类指针参数
yc_8301
·
2007-10-08 09:00
C++
汇编
input
callback
pascal
winapi
[zt]WIN32编程必知:__stdcall,__cdecl,__fastcall,
thiscall
,naked call
[zt]WIN32编程必知:__stdcall,__cdecl,__fastcall,
thiscall
,nakedcall重剑点评: 老子想知道的就是__fastcall是不是vc,bcb里面都有这个
重剑无锋,大巧不工
·
2007-10-07 21:00
fatal error LNK1120: 3 unresolved externals错误处理
但每次编译项目,那3个函数便报错 DataStruct.obj : error LNK2001: unresolved external symbol "public: virtual bool __
thiscall
javayestome
·
2007-10-07 19:00
C++
c
C#
MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __
thiscall
type_info::type_info(class type_info const
VC的链接问题实在让人头痛。VC属性中的 RuntimeLibrary可能在有依赖的lib之间设置不一样。比如界面程序A.exe依赖自己建立的基础库B.lib。这一般就需要他们的设置一样。但我目前使用/MD时到没问题,如果都使用/MT,好像还是有问题。而且有时还有比如msvcrt.lib中的其他很多函数已经在LIBCMT.lib中定义了之类的链接错误。到现在也没搞明白到底他们之间的关系咋样,一个词
Jaogoy
·
2007-10-06 12:00
Class
library
serviceRepaints是如何实现强制刷屏的!
Forcesanypendingrepaintrequeststobeservicedimmediately.Thismethodblocksuntilthependingrequestshavebeenserviced.Iftherearenopendingrepaints,orifthiscanvasisnotvisibleonthedisplay,
thiscall
crazyerghb
·
2007-09-27 14:00
exception
object
null
application
扩展
sun
技巧:在pthread的线程函数中,使用类的非静态成员函数来执行
大家知道,pthread_create()函数的线程函数必须是静态的函数,以标准的__cdecl的方式调用的,而C++的成员函数是以__
thiscall
的方式调用的,相当于一个普通函数有一个默认的
ah_fu
·
2007-08-05 21:00
thread
C++
c
C#
error LNK2005: "public: __
thiscall
std::basic_string……already defined in……
msvcprtd.lib(MSVCP80D.dll):errorLNK2005:"public:__thiscallstd::basic_string,classstd::allocator>::~basic_string,classstd::allocator>(void)"(??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@s
Jaogoy
·
2007-05-23 23:00
C++
properties
struct
String
basic
Class
用汇编调用成员函数
用汇编调用成员函数成员函数的调用是编译器内部使用的__
thiscall
即需要this指针,所以我们调用成员函数必须满足的条件是1需要this指针,2成员函数有固定的函数地址先看条件1 this指针是在函数调用前用
行者修一
·
2007-03-12 23:00
解决unresolved external symbol "public: int __
thiscall
CWnd::KillTimer(unsigned int)" (?
出现这种问题多是由于混合使用了6.0和高版本的sdk的缘故,在vc包含的头文件中只要将6.0的sdk中的MFC下的include放在高版本SDK的MFC的include前面就可以了,这个问题花了偶两天的时间,汗也可以在vc中设置使用AFX_ENABLE_INLINES预定义
ngaut
·
2007-02-23 23:00
关于调用约定(cdecl、fastcall、、
thiscall
) 的一点知识
函数调用规范 当高级语言函数被编译成机器码时,有一个问题就必须解决:因为CPU没有办法知道一个函数调用需要多少个、什么样的参数。即计算机不知道怎么给这个函数传递参数,传递参数的工作必须由函数调用者和函数本身来协调。为此,计算机提供了一种被称为栈的数据结构来支持参数传递。 函数调用时,调用者依次把参数压栈,然后调用函数,函数被调用以后,在堆栈中取得数据,并进行计算。函数计算结束以后,或者调用者、或
任我行
·
2007-01-08 14:00
C++虚函数系列之三:虚函数调用的另类"注入"
因为C++成员函数的调用约定为
thiscall
。 从网上摘录的关于函数调用约定:1、_std
dreamxren
·
2005-12-07 18:00
C++
c
table
Class
pascal
output
函数调用约定解析
函数调用约定解析
[email protected]
2004.11.07整理tag:汇编,pascal,fastcall,stdcall,
thiscall
housisong
·
2005-10-16 19:00
汇编
byte
Delphi
pascal
编译器
C++Builder
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他