VS2010編譯Gh0st3 6 二 續

2021-06-09 16:23:26 字數 3477 閱讀 8708

2.4.2

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(27): error c2011: 「bgtype」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(14) : 參見「bgtype」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(33): error c2011: 「imagelayout」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(25) : 參見「imagelayout」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(38): error c2011: 「bordertype」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(35) : 參見「bordertype」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(44): error c2011: 「filltype」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(46) : 參見「filltype」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(52): error c2011: 「sizingtype」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(59) : 參見「sizingtype」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(58): error c2011: 「halign」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(70) : 參見「halign」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(64): error c2011: 「contentalignment」:「enum」型別重定義 

1>          c:\program files\microsoft sdks\windows\v7.0a\include\vssym32.h(81) : 參見「contentalignment」的宣告 

1>e:\programming\vs2010\gh0st3.6\gh0st\tmschema.h(70): error c2011: 「valign」:「enum」型別重定義

又是一堆的型別重定義錯誤,這次需要現式的指出windows版本才能解決這個問題。開啟stdafx.h,在其中新增 #define _win32_winnt 0×0500 。下面是我的操作,實際放置的位置可以自己調整。

e:\programming\vs2010\gh0st3.6\gh0st\stdafx.h

#define vc_extralean // exclude rarely-used stuff from windows headers 

#include // mfc core and standard components 

#include // mfc extensions 

#include 

修改如下:

#define vc_extralean // exclude rarely-used stuff from windows headers 

#define _win32_winnt 0×0500 

#include // mfc core and standard components 

#include // mfc extensions 

#include 

這裡就說下引數的含義,0×0500是指windows 2000,這個巨集定義說明這個程式只是要在windows 2000 及以上的作業系統上才能正常執行。0×0501 windows xp、0×0502 windows server 2003、 0×0600 windows vista、0×0601 windows 7。

2.4.3

1>truecolor*******.cpp(42): error c2440: 「static_cast」: 無法從「void (__thiscall ctruecolor*******::* )(nm*******a *,lresult *)」轉換為「void (__thiscall ccmdtarget::* )(nmhdr *,lresult *)」 

1>          在匹配目標型別的範圍內沒有具有該名稱的函式

這個和1.1.8是一樣的。這裡再說下。

定位到:

on_notify_reflect(tbn_dropdown, on*******dropdown)

可以在on*******dropdown上點右鍵跳轉到定義(f12),跳轉到申明(ctrl+alt+f12)

e:\programming\vs2010\gh0st3.6\gh0st\truecolor*******.cpp

void ctruecolor*******::on*******dropdown(nm******** pnmtb, lresult *plr) 

{ for (int i = 0; i < m_lstdropdownbutton.getsize(); i++) {

修改如下:

void ctruecolor*******::on*******dropdown(nmhdr* nmhdrpnmtb, lresult *plr) 

{ nm*******a *pnmtb = (nm*******a *)nmhdrpnmtb; 

for (int i = 0; i < m_lstdropdownbutton.getsize(); i++) {

e:\programming\vs2010\gh0st3.6\gh0st\truecolor*******.h

afx_msg void on*******dropdown(nm******** pnmh, lresult* plres);

修改如下:

afx_msg void on*******dropdown(nmhdr* nmhdrpnmtb, lresult* plres);

2.5

gh0st就只有這些錯誤了。下一節將講解連線錯誤。

VS2010靜態編譯

因為需要在其他電腦上執行.exe檔案,會有缺dll。所以需要靜態編譯生成.exe可執行檔案。在網上查詢了一下vs2010靜態編譯生成.exe的方法,有很多,試了其中一種,記錄一下,以便今後查閱。感謝提供方法的大神們!設定 1 專案 配置屬性 常規 mfc的使用 在靜態庫中使用mfc 如果有使用mfc...

使用VS2010編譯mod wsgi

為了在windows下使用apache發布django,檢視了文件,有兩種方式可以實現,一種是傳統方式,在apahce modules目錄下存放mod wsgi.so檔案,另一種是直接pip安裝,據文件說是比較方便,但我試了,沒有成功,不知道問題出在哪,也沒有相關中文資料,只好安裝vs2010編譯生...

gh0st遠控官方原始碼編譯步驟

所需工具 vc 6.0 platform sdk software development kit 軟體開發工具包 windows ddk device development kit 裝置開發工具包 gh0st官方原始碼是vc6.0編寫,而且還需要安裝software development ki...