C++名稱粉碎

C++ name mangling?
1: ?0: 構造器,?1 析構器
2: ?@@QAE: public __thiscall
? ? @@AAE: private __thiscall
? ? @@QBE: public __thiscall const?
3: 返回值和參數類型
? ? B:const
? ? D:char
? ? E:unsigned char
? ? F:short
? ? G:unsigned short
? ? H:int
? ? I:unsigned int
? ? J:long
? ? K:unsigned long
? ? M:float
? ? N:double
? ? _N:bool
? ? PA:指針(*,后面的代號表明指針類型,如果相同類型的指針連續出現,以0代替,一個0代表一次重復)
? ? PB:const指針
? ? AA:引用(&)
? ? AB:const引用
? ? U:類或結構體
? ? V:Interface(接口)
? ? W4:enum
? ? X:void
? ? Z: 結尾標記
? ? @: 空,無得意思,構造或析構使用,與?0, ?1配合
--------------------------------------------------------------------------------
實例:熟讀唐詩三百首,不拍你不會做詩,自己體會吧,如果你愿意。
--------------------------------------------------------------------------------
?0CritSec@@QAE@XZ (public: __thiscall CritSec::CritSec(void))
?0Tick@@QAE@K@Z (public: __thiscall Tick::Tick(unsigned long))
?1CritSec@@QAE@XZ (public: __thiscall CritSec::~CritSec(void))
?0CFontSet@@QAE@XZ (public: __thiscall CFontSet::CFontSet(void))
?0Dx2DDraw@@QAE@XZ (public: __thiscall Dx2DDraw::Dx2DDraw(void))
?1AutoLock@@QAE@XZ (public: __thiscall AutoLock::~AutoLock(void))
?1CD3DDraw@@QAE@XZ (public: __thiscall CD3DDraw::~CD3DDraw(void))
?1CFontSet@@QAE@XZ (public: __thiscall CFontSet::~CFontSet(void))
?1Dx2DDraw@@QAE@XZ (public: __thiscall Dx2DDraw::~Dx2DDraw(void))
Lock@CritSec@@QAEXXZ (public: void __thiscall CritSec::Lock(void))
?0D3dDrawCmd@@QAE@XZ (public: __thiscall D3dDrawCmd::D3dDrawCmd(void))
?0ImgTexture@@QAE@XZ (public: __thiscall ImgTexture::ImgTexture(void))
Unlock@CritSec@@QAEXXZ (public: void __thiscall CritSec::Unlock(void))
?1ImgTexture@@QAE@XZ (public: __thiscall ImgTexture::~ImgTexture(void))
TryLock@CritSec@@QAEHXZ (public: int __thiscall CritSec::TryLock(void))
DelFont@CFontSet@@QAEHH@Z (public: int __thiscall CFontSet::DelFont(int))
TryLock@AutoLock@@QAEHXZ (public: int __thiscall AutoLock::TryLock(void))
Refresh@CD3DDraw@@QAEJXZ (public: long __thiscall CD3DDraw::Refresh(void))
?0ResImageList@@QAE@XZ (public: __thiscall ResImageList::ResImageList(void))
?0simplethread@@QAE@XZ (public: __thiscall simplethread::simplethread(void))
?BTick@@QBEKXZ (public: __thiscall Tick::operator unsigned long(void)const )
stop@simplethread@@QAEXXZ (public: void __thiscall simplethread::stop(void))
?1ResImageList@@QAE@XZ (public: __thiscall ResImageList::~ResImageList(void))
?1simplethread@@QAE@XZ (public: __thiscall simplethread::~simplethread(void))
pass@Tick@@QBE?AU1@XZ (public: struct Tick __thiscall Tick::pass(void)const )
?0CD3DDrawLayer@@QAE@XZ (public: __thiscall CD3DDrawLayer::CD3DDrawLayer(void))
?0D3dDrawCmdSet@@QAE@XZ (public: __thiscall D3dDrawCmdSet::D3dDrawCmdSet(void))
RenderAll@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::RenderAll(void))
Visible@CAllocator@@QAE_NXZ (public: bool __thiscall CAllocator::Visible(void))
?1D3dDrawCmdSet@@QAE@XZ (public: __thiscall D3dDrawCmdSet::~D3dDrawCmdSet(void))
ClearVideo@CD3DDraw@@QAEXXZ (public: void __thiscall CD3DDraw::ClearVideo(void))
TestDevice@CD3DDraw@@QAEJXZ (public: long __thiscall CD3DDraw::TestDevice(void))
clear@D3dDrawCmdSet@@QAEXXZ (public: void __thiscall D3dDrawCmdSet::clear(void))
EndPaint@CD3DDraw@@QAEJPAX@Z (public: long __thiscall CD3DDraw::EndPaint(void *))
getSize@ResImageList@@QAEHXZ (public: int __thiscall ResImageList::getSize(void))
CheckDevice@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::CheckDevice(void))
ClearDraw@CD3DDraw@@QAEJPAX@Z (public: long __thiscall CD3DDraw::ClearDraw(void *))
ResetDevice@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::ResetDevice(void))
SetD3DState@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::SetD3DState(void))
Visible@CD3DDrawLayer@@QAEHXZ (public: int __thiscall CD3DDrawLayer::Visible(void))
OnLostDevice@CFontSet@@QAEJXZ (public: long __thiscall CFontSet::OnLostDevice(void))
Popfront@ResImageList@@QAEXXZ (public: void __thiscall ResImageList::Popfront(void))
CreateDevice@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::CreateDevice(void))
OnLostDevice@CD3DDraw@@AAEXXZ (private: void __thiscall CD3DDraw::OnLostDevice(void))
RenderCursor@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::RenderCursor(void))
?1ImgTextureGeter@@QAE@XZ (public: __thiscall ImgTextureGeter::~ImgTextureGeter(void))
ClearCanvas@CD3DCanvas@@QAEJXZ (public: long __thiscall CD3DCanvas::ClearCanvas(void))
FontUninstall@CD3DDraw@@QAEXH@Z (public: void __thiscall CD3DDraw::FontUninstall(int))
OnResetDevice@CFontSet@@QAEJXZ (public: long __thiscall CFontSet::OnResetDevice(void))
ResetD3Device@CD3DDraw@@QAEJXZ (public: long __thiscall CD3DDraw::ResetD3Device(void))
OnResetDevice@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::OnResetDevice(void))
PresentCanvas@CD3DDraw@@AAEXXZ (private: void __thiscall CD3DDraw::PresentCanvas(void))
SetSysRatio@CD3DDraw@@QAEJHH@Z (public: long __thiscall CD3DDraw::SetSysRatio(int,int))
AddFont@CFontSet@@QAEHHHPAD@Z (public: int __thiscall CFontSet::AddFont(int,int,char *))
OnLostDevice@CAllocator@@QAEJXZ (public: long __thiscall CAllocator::OnLostDevice(void))
OnLostDevice@ImgTexture@@QAEJXZ (public: long __thiscall ImgTexture::OnLostDevice(void))
SetFullScreen@CD3DDraw@@QAEJ_N@Z (public: long __thiscall CD3DDraw::SetFullScreen(bool))
getFront@ResImageList@@QAEPADXZ (public: char * __thiscall ResImageList::getFront(void))
CleanSurface@CD3DDraw@@QAEJPAX@Z (public: long __thiscall CD3DDraw::CleanSurface(void *))
RecreateDevice@CD3DDraw@@AAEJXZ (private: long __thiscall CD3DDraw::RecreateDevice(void))
check_stop@simplethread@@QAE_NXZ (public: bool __thiscall simplethread::check_stop(void))
is_running@simplethread@@QAE_NXZ (public: bool __thiscall simplethread::is_running(void))
OnResetDevice@CAllocator@@QAEJXZ (public: long __thiscall CAllocator::OnResetDevice(void))
OnResetDevice@ImgTexture@@QAEJXZ (public: long __thiscall ImgTexture::OnResetDevice(void))
SetCursorEnable@CD3DDraw@@QAEXH@Z (public: void __thiscall CD3DDraw::SetCursorEnable(int))
DrawLineH@CD3DCanvas@@QAEJHHH@Z (public: long __thiscall CD3DCanvas::DrawLineH(int,int,int))
DrawLineV@CD3DCanvas@@QAEJHHH@Z (public: long __thiscall CD3DCanvas::DrawLineV(int,int,int))
get_canvasWidth@CD3DCanvas@@QAEHXZ (public: int __thiscall CD3DCanvas::get_canvasWidth(void))
AllocatorVisible@CD3DDraw@@AAE_NXZ (private: bool __thiscall CD3DDraw::AllocatorVisible(void))
BeginPaint@CD3DDraw@@QAEPAXK@Z (public: void * __thiscall CD3DDraw::BeginPaint(unsigned long))
TextWidth@CFontSet@@QAEJHPBD@Z (public: long __thiscall CFontSet::TextWidth(int,char const *))
count@D3dDrawCmdSet@@QBEIXZ (public: unsigned int __thiscall D3dDrawCmdSet::count(void)const )
get_arglist@simplethread@@QAEPAXXZ (public: void * __thiscall simplethread::get_arglist(void))
set_bColor@CD3DCanvas@@QAEXK@Z (public: void __thiscall CD3DCanvas::set_bColor(unsigned long))
set_fColor@CD3DCanvas@@QAEXK@Z (public: void __thiscall CD3DCanvas::set_fColor(unsigned long))
Pushback@ResImageList@@QAEXPBD@Z (public: void __thiscall ResImageList::Pushback(char const *))
get_canvasHeight@CD3DCanvas@@QAEHXZ (public: int __thiscall CD3DCanvas::get_canvasHeight(void))
?0CD3DDraw@@QAE@PAUHWND__@@AAJ@Z (public: __thiscall CD3DDraw::CD3DDraw(struct HWND__ *,long &))
SetVideoRenderMode@CD3DDraw@@QAEXH@Z (public: void __thiscall CD3DDraw::SetVideoRenderMode(int))
?0AutoLock@@QAE@PAVCritSec@@HH@Z (public: __thiscall AutoLock::AutoLock(class CritSec *,int,int))
FontInstall@CD3DDraw@@QAEXHHPAD@Z (public: void __thiscall CD3DDraw::FontInstall(int,int,char *))
DrawLineH@CD3DDraw@@QAEJPAXHHH@Z (public: long __thiscall CD3DDraw::DrawLineH(void *,int,int,int))
DrawLineV@CD3DDraw@@QAEJPAXHHH@Z (public: long __thiscall CD3DDraw::DrawLineV(void *,int,int,int))
GetItem@CFontSet@@QAEPAUDrawFont@@H@Z (public: struct DrawFont * __thiscall CFontSet::GetItem(int))
DrawRect@CD3DCanvas@@QAEJUtagRECT@@@Z (public: long __thiscall CD3DCanvas::DrawRect(struct tagRECT))
FillRect@CD3DCanvas@@QAEJUtagRECT@@@Z (public: long __thiscall CD3DCanvas::FillRect(struct tagRECT))
SetResolutionRatio@CD3DDraw@@QAEJHH@Z (public: long __thiscall CD3DDraw::SetResolutionRatio(int,int))
FontTextWidth@CD3DDraw@@QAEJHPBD@Z (public: long __thiscall CD3DDraw::FontTextWidth(int,char const *))
LoadResImage@CD3DDraw@@QAEJPAXPBD@Z (public: long __thiscall CD3DDraw::LoadResImage(void *,char const *))
DrawRect@CD3DDraw@@QAEJPAXUtagRECT@@@Z (public: long __thiscall CD3DDraw::DrawRect(void *,struct tagRECT))
FillRect@CD3DDraw@@QAEJPAXUtagRECT@@@Z (public: long __thiscall CD3DDraw::FillRect(void *,struct tagRECT))
OnLostDevice@CDoubleBufferCanvas@@QAEJXZ (public: long __thiscall CDoubleBufferCanvas::OnLostDevice(void))
SetClipRect@Dx2DDraw@@QAEXPAUtagRECT@@@Z (public: void __thiscall Dx2DDraw::SetClipRect(struct tagRECT *))
GetResolutionRatio@CD3DDraw@@QAEJPAH0@Z (public: long __thiscall CD3DDraw::GetResolutionRatio(int *,int *))
sync_to@D3dDrawCmdSet@@QAEXAAU1@@Z (public: void __thiscall D3dDrawCmdSet::sync_to(struct D3dDrawCmdSet &))
?8D3dDrawCmd@@QBE_NABU0@@Z (public: bool __thiscall D3dDrawCmd::operator==(struct D3dDrawCmd const &)const )
?9D3dDrawCmd@@QBE_NABU0@@Z (public: bool __thiscall D3dDrawCmd::operator!=(struct D3dDrawCmd const &)const )
OnResetDevice@CDoubleBufferCanvas@@QAEJXZ (public: long __thiscall CDoubleBufferCanvas::OnResetDevice(void))
SetVideoRect@CD3DDraw@@QAEXPAUtagRECT@@@Z (public: void __thiscall CD3DDraw::SetVideoRect(struct tagRECT *))
set_clipRect@CD3DCanvas@@QAEXUtagRECT@@@Z (public: void __thiscall CD3DCanvas::set_clipRect(struct tagRECT))
Render@CD3DDraw@@AAEJPAUCD3DDrawLayer@@@Z (private: long __thiscall CD3DDraw::Render(struct CD3DDrawLayer *))
--------------------------------------------------------------------------------
當函數使用__cdecl調用約定時,編譯器進行以下工作:
?
1.以?標識函數名的開始,后跟函數名函數名后面以@@YA標識開始,后跟返回值和參數表;
5、當函數返回值為某個類或帶有const性質的類的時候,返回值的命名為:?A/?B+V+類名+@@(不帶加號)。
? ?當函數返回值為某個類的指針/引用或者帶有const性質的類的指針/引用的時候,返回值的命名為:PA/AA或者PB/AB+V+類名+@@(不帶加號);
6、函數參數為某個類的時候,并且該參數所使用的類曾經出現過的話(也就是與函數返回值所使用的類相同或者與前一個參數使用的類相同),
? ?則該參數類型格式為:V+1+@(不帶加號)。如果該參數所使用的類沒有出現過的話,則該參數類型格式為:V+類名+@@(不帶加號)。函數參數為某個類的指針 /引用或者帶有const性質指針/引用的時候,則該參數類型格式是在上述格式的基礎上在V前面加上代表指針/引用類型或者帶有const性質指針/引用類型的標識符(PA/AA或PB/AB);
7、參數表后以@Z標識整個名字的結束,如果該函數無參數,則以Z標識結束。
?
當函數使用__stdcall調用約定時,編譯器所做工作的規則同上面的__cdecl調用約定,只是參數表的開始標識由上面的@@YA變為@@YG。
當函數使用__fastcall調用約定時,編譯器所做工作的規則同上面的__cdecl調用約定,只是參數表的開始標識由上面的@@YA變為@@YI。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375279.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375279.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一款基于css3鼠標經過圓形旋轉特效

今天給大家分享一款基于css3鼠標經過圓形旋轉特效。當鼠標經過的時候圖片邊框顏色旋轉,圖片顯示詳情。該實例適用瀏覽器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗。效果圖如下: 在線預覽 源碼下載 實現的代碼。 ht…

Delphi與Windows 7下的用戶賬戶控制(UAC)機制

WIN7/WIN8/WIN10, Vista提供的UAC機制,它的主要目的是防止對于操作系統本身的惡意修改。 對于Delphi程序的影響,UAC主要在于以下幾點: 1、由于UAC機制,Delphi對于系統的操作可能無聲的失敗,而同樣的程序,在…

[轉]深入理解Java 8 Lambda(類庫篇——Streams API,Collectors和并行)

以下內容轉自: 作者:Lucida 微博:peng_gong 豆瓣:figure9 原文鏈接:http://zh.lucida.me/blog/java-8-lambdas-insideout-library-features 本文謝絕轉載,如需轉載需征得作者本人同意,謝謝。 --…

Eclipse生成jar包

前言: 本宅因為要寫XXX軟件的一個插件,來用用java,接觸3天后 在打jar包上卡住了..... 經過大量的百度搜索后有如下幾種解決方案: 解決方案: 一.安裝Fatjar 在線安裝地址:http://kurucz-grafika.de/fatjar 悲劇的是我怎么也安裝不上去,于是放棄(在線下載包什么 我的Eclipse版…

Buffer和Cache的區別

現在不都是只有page cache了嗎? buffer pages其實也是page cache里面的頁。只是多了一層抽象,通過buffer_head來進行一些訪問管理對,從Linux算法實現的角度,page cache和buffer cache目前是一樣的,但是從功能抽象和具體應用來講&a…

Android刷機

這里也有一篇比較詳細的 http://blog.csdn.net/qq1084283172/article/details/52334452 官網刷機包 https://developers.google.com/android/images#hammerhead 我的機器是Nexus 5 一. 安裝驅動 如何進入fastboot模式 1. 拔掉數據線,將手機關機 2. 關機后同時按…

中西醫與算法之間的聯系

中西醫的特點網上有非常多討論,概括起來就是西醫治病,中醫不治病 這個觀點有部分道理,但不全對 中醫落后的原因有非常多,但假設能用計算機的算法改進一下應該有非常大提升 比方翻譯,比方路線規劃,比方信號識…

程序的版式

版式雖然不會影響程序的功能,但會影響可讀性。程序的版式追求清晰、美觀,是程序風格的重要構成因素。可以把程序的版式比喻為“書法”。好的“書法”可讓人對程序一目了然,看得興致勃勃。差的程序“書法”如螃蟹爬行,讓人看得索然…

java算法---五家共井

古代數學巨著《九章算數》中有這么一道題叫“五家共井,甲二綆(汲水用的井繩)不足,如(接上)乙一綆;乙三綆不足,如丙一綆; 丙四綆不足,如丁一綆;丁五…

看雪逆向學習導航

---------------------------------------------------------------------------- 工具教程: OllyDbg IDA Windbg GDB 基本方法 參考資料 逆向原理 ----------------------------------------------------------------------------

viewController的生命周期

一、結構 按結構可以對iOS的所有ViewController分成兩類: 1、主要用于展示內容的ViewController,這種ViewController主要用于為用戶展示內容,并與用戶交互,如UITableViewController,UIViewController。 2、用于控制和顯…

android123 zhihuibeijing 新聞中心-新聞 頁簽 ViewPagerIndicator實現

## ViewPagerIndicator ## 使用導入ViewPagerIndicator庫的方式相當于可以改源碼,打包編譯Eclips可以自動完成。ViewPager指針項目,在使用ViewPager的時候能夠指示ViewPager所在的位置,就像Google Play中切換的效果一樣,還能使用…

java 獲取隨機數字的三種方法

1 //方法1 (數據類型)2 //(最小值Math.random()*(最大值-最小值1))3 // 例:4 (int)(1Math.random()*(10-11)) //從1到10的int型隨數5 6 方法2 獲得隨機數7 for (int i0;i<30;i)8 {9 System.out.println((int)(1Math.random()*10)); 10 } 11 (int)(1Math.random()*10) 1…

LVS原理及實踐(NAT模式)

LVS無論NAT及DR模式&#xff0c;均要求LVS server和real server在同一個網段內&#xff0c;NAT需要把lvs server當作各個realserver的默認網關&#xff0c;DR模式采用修改mac地址直接從數據鏈路層轉發、要求必須在同一個物理網段內 LVS-NAT的實驗網絡拓撲&#xff1a; 采用青…

基于Maven的spring_security入門

配置文件的修改點沒什么變化&#xff0c;可以參考&#xff1a;http://blog.csdn.net/ouitiken/article/details/8830505 pom.xml的依賴參考&#xff1a; <dependencies><!-- Commons --><dependency><groupId>commons-dbcp</groupId><artifac…

使用Vitamio打造自己的Android萬能播放器(5)——在線播放(播放優酷視頻)

前言 為了保證每周一篇的進度&#xff0c;又由于Vitamio新版本沒有發布&#xff0c; 決定推遲本地播放的一些功能&#xff08;截圖、視頻時間、尺寸等&#xff09;&#xff0c;跳過直接寫在線播放部分的章節。從Vitamio的介紹可以看得出&#xff0c;其支持http、m3u8等多種網絡…

20個新鮮出爐的網站模板【HTML PSD】

這里給大家分享20 個新鮮出爐的免費網站模板。這些設計元素將成為你下一個項目的重要素材&#xff0c;可以幫你節省很多的時間。與往常一樣&#xff0c;我們經常漫游網絡&#xff0c;尋找最好的資源&#xff0c; HTML、CSS 和 PSD 等等&#xff0c;記得關注啊。 您可能感興趣的…

位運算總結(百科)

位運算 程序中的所有數在計算機內存中都是以二進制的形式儲存的。位運算就是直接對整數在內存中的二進制位進行操作。 位運算 - 定義 在很多系統程序中常要求在位(bit)一級進行運算或處理。&#xff23;語言提供了位運算的功能&#xff0c; 這使得&#xff23;語言也能像匯編語…

歸檔(轉)

如果是自定義類型的歸檔和解檔&#xff0c;是按以下步驟實現如果不是自定義類型&#xff0c;直接第四步就可以。一、創建一個類User二、在User.h中遵循NSCoding協議 #import <Foundation/Foundation.h> interface User : NSObject<NSCoding> { int _userAge;//例子…

相遇

CPU直接識別的唯一語言是機器語言,為了克服機器語言的缺點,便將機器指令用便于記憶、并能描述指令功能的符號來表示稱為指令助記符簡稱助記符 匯編語言由匯編指令,偽指令,和其它符號組成 匯編指令:機器碼的助記符,有對應的機器碼 偽指令:沒有對應的機器碼由編譯器執行 其它符號…