根據相依性圖形顯現程式碼相依性
若要查看和了解您的程式碼和它的相依性的組織中,您可以在 Visual Studio Ultimate 相依性圖形。 什麼是如何相依性圖形和是它們有用?
支援的專案:
Visual C# .NET 和 Visual Basic .NET 專案,包括 Windows 存放區應用程式和組件檔 (.dll 或 .exe)。
Visual C++ 專案,包括 Windows 存放區應用程式, C 或 C++ 程式碼 (Managed 或原生),標頭檔 (.h) 或 #include和二進位檔案。
視訊:
本主題內容
我要如何開始?
視覺化的相依性與您的程式碼
共用相依性圖形
產生批次處理的圖形
疑難排解
我要如何開始?
取得方案的概觀:在 [架構] 功能表上,選擇 [產生相依性圖形], [針對方案]。
取得顯示最上層組件的圖形。 您可以展開它們出現在探索這些組件。 將滑鼠指標置於組件的頂端,然後選取>形箭號 (^) 按鈕,在顯示時。 設定成相同命名空間、型別和成員可以繼續探索您的程式碼。
若要查看跨群組相依性,請選擇在圖形中的某個項目。
如需詳細資訊,請參閱 取得方案的概觀。 您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題。
以視覺化方式檢視您方案中的特定相依性:在 [方案總管],選取您感興趣的項目。 您可以選擇專案、組件參考、資料夾、檔案、型別和其成員。 若要尋找特定項目,請使用 [方案總管] 搜尋方塊。
在 [方案總管] 工具列上,選取 [建立新的圖形文件 。
-或-
從 [方案總管] 拖曳項目加入至現有圖形。
提示
若要建立空白圖形, [檔案] 在功能表上,選取 [新增], [檔案], [有向圖形文件]。將項目的父代階層架構,請按住 [CTRL] 索引鍵,當您拖曳項目時。
取得顯示您所選取之項目的圖表。 您可以展開它們出現在探索這些項目。 移動滑鼠指標位於此項目上方,然後選取>形箭號 (^) 按鈕,在顯示時。
如需詳細資訊,請參閱 以視覺化方式檢視您方案中的特定相依性。 您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題。
什麼是如何相依性圖形和是它們有用?
相依性圖形提供視覺化方式檢查程式碼並了解其相依性,而不須將檔案和程式碼。 您可以看到項目及關聯性的做為節點和連結或箭號。 例如,假設您有一個執行的程式碼檢閱。 您有包含暫止變更的一組檔案。 您可以建立相依性圖形將程式碼和相依性這些變更的從這些檔案。 請參閱 以視覺化方式檢視您方案中的特定相依性。
根據預設,容器關聯性表示為群組,您可以展開和摺疊。
提示
[重新擷取子系] 按鈕 可讓您擷取存在於程式碼群組的成員,而不會出現在圖形上。我們也套用不同的樣式套用至呼叫連結,讓您可以更容易地看到它。請參閱 編輯和自訂相依性圖形。
您也可以檢視容器關聯性為連結。 隨即開啟圖形的捷徑功能表上,選取 [群組], [關閉群組]:
您也可以執行分析器尋找可能在程式碼中的問題。 請參閱 從相依性圖形尋找程式碼中潛在的問題。
當您第一次產生相依性圖形,找到的 Visual Studio 的所有相依性。 這個程序可能需要一些時間,特別是的大型方案或圖形與多個連結。 但是,索引改善更新作業的效能。 如果程式碼變更, Visual Studio 重新建立索引只更新程式碼。
如果您不想等圖形完成產生動作,您可以隨時取消此步驟並嘗試下列建議:
圖形您感興趣的相依性。
在您產生整個方案的目前圖形,請減少方案的範圍。
雖然 Visual Studio 可以與 1 GB 的記憶體,建議您的電腦具有以避免至少 2 GB 的記憶體的冗長延遲,則 Visual Studio 會建立程式碼索引並產生圖形時。
注意事項 |
---|
Visual Studio 會產生圖形,如果至少有一個專案建置成功。已成功顯示該程式碼的相依性組建。如果發生建置錯誤的某些元件發生,那些元件的錯誤會出現在圖形上。在根據圖形進行架構決策前,請確定元件實際建置且具有相依性。 當專案項目, 複製到輸出目錄 的屬性設定為 永遠複製時,可能需要更長的時間來建立圖表或將項目加入至圖表從 [方案總管] 中。這可能會導致以累加建置和 Visual Studio 的問題每次重新建置專案。若要增加效能,請將這個屬性變更為 有更新時才複製 或 PreserveNewest。請參閱 累加建置。 |
視覺化的相依性與您的程式碼
取得您的程式碼概觀
以視覺化方式檢視特定相依性在您的程式碼
以視覺化方式檢視 C 或 C++ 之間的相依性原始程式檔和標頭檔
產生處理使用 GraphCmd.exe 的批次的圖形
提示
若要產生 C++ 專案的完整圖表,這些專案必須設定瀏覽資訊編譯器選項 (/FR)。否則,訊息隨即出現您設定選項。如果出現這個訊息,您可以選取 [確定] 只設定目前圖形的選項,或者您可以將此選項和隱藏所有最新圖形的訊息。認可訊息以供稍後圖表隨即出現,設定下列登錄機碼加入至 0 或刪除金鑰:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\NativeProvider : AutoEnableSbr
請參閱 /FR、/Fr (建立 .Sbr 檔案)。
取得您的程式碼概觀
您可以建立自己的整個方案或 對於組件或二進位檔。的相依性圖形。
取得方案的概觀
在 [架構] 功能表上,選擇 [產生相依性圖形], [針對方案]。
取得顯示最上層組件和彙總連結它們之間的圖形。 彙總連結的粗細指出有多少個別相依性連結所表示。 [外部] 群組包含任何項目在您的方案之外,包括平台相依性。 外部組件顯示使用上的項目。
您可以展開它們出現在探索這些組件。 將滑鼠指標置於組件的頂端,然後選取>形箭號 (^) 按鈕,在顯示時。 (鍵盤:選取項目,然後選取 [無效] 鍵 (+))。設定成相同命名空間、類別和成員的可以繼續探索您的程式碼。
若要取得項目或連結的詳細資訊,請將指標移到項目頂端,直到出現工具提示。
若要檢查彙總連結和相依性表示的項目,請先選取連結,然後開啟捷徑功能表。 選取 [顯示]、 [目前圖表中的參與連結] 或 [新增圖表中的參與連結]。
Visual Studio 展開群組在連結的兩端並顯示參與此連結上的項目和相依性。 若要查看存在於程式碼群組,但是因為遺漏的項目,請選取 [重新擷取子系 。
請參閱:
取得組件或二進位概觀
建立空白圖形或開啟現有圖形的 .dgml 檔案)。 從 Visual Studio 外部,將組件或二進位至圖形。
注意事項 為,當您執行 Windows 檔案總管和 Visual Studio 以相同的使用者存取控制項 (UAC) 使用權限等級,您可以將組件或二進位檔從 Windows 檔案總管。例如,如果 UAC 已開啟,而您是 Visual Studio 以系統管理員身分執行,那麼 [Windows 檔案總管] 將會封鎖拖曳作業。若要解決這個問題,請確定 Visual Studio 以系統管理員身分執行,或關閉 UAC。請注意在 Windows 8 中, Windows 檔案總管是檔案總管。
-或-
在 [架構] 功能表上,選擇 [Windows], [架構總管]。
在第一個資料行, [檔案系統] 在下,選取 [選取檔案]。
在 [開啟] 方塊中,尋找並選取組件或二進位檔。 選取 [開啟] 將它們加入至 [架構總管] 的下一個資料行。
在 [架構總管],選取組件或二進位檔。
在包含選取的組件或二進位之資料行的右側,選取摺疊的動作資料行加以展開。
提示
當您將指標移至其上方時,摺疊的動作資料行就會反白顯示。
在動作資料行中, [命令] 底下,選取 [開啟] 產生相依性圖形。
請參閱 使用架構總管尋找程式碼。
建立空白圖形
若要開啟新的空白圖形不會加入至您的方案,請在功能表上,選取 [檔案][新增], [檔案]。
-或-
若要將空白圖形加入至方案中的 [方案項目] 資料夾中,開啟最上層的方案節點的捷徑功能表。 選取 [新增], [新增項目]。
在 [已安裝的] 底下,選取 [一般]。
在右窗格中,選取 [ [有向圖形文件]。
您也可以將空白圖形加入至模型專案 [架構] 從功能表中選擇 [新增圖表]。
以視覺化方式檢視特定程式碼相依性。
您可以針對特定項目建立相依性圖形中的方案或 在組件和二進位。
以視覺化方式檢視您方案中的特定相依性
在 [方案總管],選取您感興趣的項目。 您可以選擇專案、組件參考、資料夾、檔案、型別和其成員。 若要尋找特定項目,請使用 [方案總管] 搜尋方塊。
提示
若要尋找項目與型別或成員的相依性,請開啟型別的 [方案總管] 的捷徑功能表或成員。選取相依性類型。方案總管會顯示具有相依性您指定的項目。選取結果。
若要繪製的專案及其成員, [方案總管] 工具列上,選取 [建立新的圖形文件 。
-或-
要包含在圖形上的父代階層架構,在 [方案總管] 工具列的 [建立新的圖形文件…] 清單,然後選取 [新增含有上階的相依性圖形]。
提示
您也可以將項目拖曳至圖形。首先, 建立空白圖形 或開啟現有圖形的 .dgml 檔案)。包含父容器階層,請按住 [CTRL] 索引鍵,當您拖曳項目時。
取得顯示您所選取之項目的圖表。
若要探索項目,您可以展開它們。 移動滑鼠指標位於此項目上方,然後選取>形箭號 (^) 按鈕,在顯示時。 若要展開所有項目,請開啟圖形的捷徑功能表。 選取 [群組], [全部展開]。
注意事項 如果展開所有群組產生一個無法使用的圖表或記憶體問題,這個命令無法使用。
從群組要擷取遺漏的項目,請選取群組中的 [重新擷取子系 。
若要查看更多項目與這個相關的圖形,請開啟項目的捷徑功能表。 選取 [顯示] 和您要檢查的項目之間的關聯性。
對組件而言,選取:
參考的組件
將這個組件參考的組件。 外部組件中 [外部] 群組中。
參考組件。
加入參考這個組件方案中的組件。
對於類別而言,選取:
基底型別
對於類別而言,加入基底類別和實作介面。
如果是介面,請將基底介面。
衍生型別
對於類別而言,加入衍生類別。
若為介面,請將衍生的介面和實作的類別或結構。
所有基底型別
以遞迴方式加入基底類別或介面階層架構。
所有衍生型別
若為類別,請以遞迴方式加入任何衍生類別。
如果是介面,請將所有衍生的介面和遞迴實作類別或結構。
內含項目階層架構
將父容器階層架構。
使用的型別。
將所有類別和這個類別使用的成員。
使用由型別
將使用這個類別的所有類別和其成員。
對於方法,選取:
內含項目階層架構
將父容器階層架構。
呼叫的 Methods
將這個方法呼叫的方法。
呼叫方法。
將呼叫這個方法的方法。
在基底型別已覆寫的方法。
如需覆寫其他方法或實作介面方法的方法,在覆寫的基底類別,且,如果有的話,實作的介面方法的所有抽象或虛擬方法。
參考的欄位
將這個方法所參考欄位。
如需欄位中,選取:
內含項目階層架構
將父容器階層架構。
參考方法
加入參考此欄位的方法。
請參閱:
以視覺化方式檢視組件或二進位檔中的特定相依性
在 [架構] 功能表上,選擇 [Windows], [架構總管]。
在第一個資料行, [檔案系統] 在下,選取 [選取檔案]。
在 [開啟] 方塊中 ,尋找並選取組件或二進位檔。 選取 [開啟] 將它們加入至 [架構總管] 的下一個資料行。
在下一個資料行中,選取組件或二進位檔。
根據預設,下一個資料行中顯示選取的項目中的項目。
提示
若要選取其他相關項目,請在包含您所選項目的資料行右邊展開摺疊的資料行。在 [節點巡覽] 底下,選取您感興趣的項目類型。在 [對外巡覽] 或 [對內巡覽] 底下,選取您要查看的這種關聯性。請參閱 使用架構總管尋找程式碼。
找出並選取您要將圖形中的所有項目。
若要建立新的圖表,請在 [架構總管] 工具列上,選取 [建立由任何所選節點的新的圖形文件 。
Visual Studio 會建立圖形並開啟它。
-或-
若要將選取項目加入至圖形,請依照下列步驟執行:
隨即開啟圖形的 .dgml 檔案或 建立空白圖形。
在 [架構總管] 工具列,請選取 [將所有選取的節點加入至目前可見的圖形文件 。
-或-
從 [架構總管] 拖曳項目至圖形。
以視覺化方式檢視 C 和 C++ 之間的相依性原始程式檔和標頭檔
若要查看之間的相依性 |
請執行 |
---|---|
方案中的所有原始程式檔和標頭檔 |
在 [架構] 功能表上,選擇 [產生相依性圖形], [針對 Include 檔]。 |
目前開啟的檔案和相關的原始程式檔和標頭檔 |
|
注意事項 |
---|
當您開啟包含 Visual C++ 專案的方案時,可能需要一些時間更新 IntelliSense 資料庫。此時,您可能無法建立標頭檔 (.h) 或 #include檔案的相依性圖形,直到 IntelliSense 資料庫完成更新。您可以監視 Visual Studio 狀態列中顯示更新進度。若要解決發生的問題或訊息,因為某些 IntelliSense 設定停用,請參閱 疑難排解。 |
共用相依性圖形
使用 Visual Studio 來儲存和其他使用者共用圖形
使用 [檔案] 功能表將圖形。
-或-
做為特定專案的一部分,要儲存圖形,請開啟圖形介面的捷徑功能表。 選取 [移動] <DependencyGraphName.dgml> [輸入] 和專案要儲存圖形的位置。
Visual Studio 將圖形,因為您可以使用 Visual Studio Ultimate、Visual Studio Premium 和 Visual Studio Professional 的其他使用者共用的 .dgml 檔案。
注意事項 在您使用 Visual Studio Premium 和 Visual Studio Professional 的人共用圖形之前,請確定展開所有群組,顯示隱藏的節點和跨群組連結,並擷取您要在圖形想要看到其他的任何刪除的節點。否則,其他使用者無法看到這些項目。
若您儲存的圖形是位於模型專案中,或此圖形是從模型專案複製到另一個位置,就會發生下列錯誤。
「無法將 fileName 儲存在專案目錄外。不支援連結項目。」
Visual Studio 還是會顯示錯誤,不過,建立儲存的版本。若要避免此錯誤,請將圖形建立在模型專案之外。然後您可以將它儲存到您想要的位置。只將檔案複製到方案中的另一個位置然後再嘗試儲存,這種做法不會有用。
匯出圖形,影像,因此您可以將它複製到其他應用程式,例如 Microsoft Word 文件或 PowerPoint
開啟圖形介面的捷徑功能表。 選取 [編輯], [複製影像]。
將影像貼入另一個應用程式中。
匯出圖形, XPS 檔案,以便您可以查看它在類似 Internet Explorer XAML 或 XML 的檢視器
開啟從圖形介面的捷徑功能表。 選取 [另存為 XPS]。
在 [另存新檔] 對話方塊中,瀏覽至您要儲存檔案的位置。
爲圖形。 確定 [存檔類型] 方塊設定為 [XPS 檔 (*.xps)]。 選取 [儲存]。
產生批次處理的圖形
您可以以批次模式產生圖形文件 (.dgml 檔案) 使用命令列工具, GraphCmd.exe 。 例如,您可以執行此工具,在每個組建中尋找已變更組建之間的相依性之後。 若要尋找此工具,請查看下列資料夾:C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE。
注意事項 |
---|
GraphCmd.exe 只支援 .NET 程式碼並產生相依性是 Visual Studio 方案的相關組件或 .dgml 檔案中,而不是原始程式碼檔或專案檔。GraphCmd.exe 外執行 Visual Studio,如此,支援在 DGQL 查詢執行的動作會受到限制。 |
GraphCmd.exe 是使用下列語法:
GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path
提示
您可以多次指定下列選項:-input、-query、-exec 和 -path。
下表說明 GraphCmd.exe 的選項:
-? |
顯示 GraphCmd.exe 的說明。 |
-all |
包含所有中繼查詢結果,而不只包含最後一個節點集的結果。 |
-exceptions |
以圖形文件 (.dgml) 檔案的形式報告查詢例外狀況。 |
-input File_Name |
處理指定的 .dgml 檔案。 這在後續處理大型 .dgml 檔案和篩選它非常有用,可讓您在 Visual Studio 可以更輕鬆地將它。 |
-query File_Name |
執行指定的有向圖形查詢語言 (DGQL 或 .dgql) 檔案。 請參閱:
|
-exec "DGQL_Statement" |
執行指定的 DGQL 陳述式。 請參閱 了解有向圖形查詢語言 (DGQL)。 |
-output File_Name |
輸出指定的 .dgml 檔案。 |
-path alias=path |
指定要在 DGML 文件的輸入與輸出中使用的新別名。 例如:
請參閱 常用路徑的別名。 |
常用路徑的別名
常用路徑的別名有助於縮減 .dgml 檔案的大小,以及載入或儲存該檔案所需的時間。 若要建立別名,請在 .dgml 檔案的結尾加入 <Paths></Paths> 區段。 在這個區段加入 <Path/> 項目,以定義路徑的別名:
<Paths>
<Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>
若要從 .dgml 檔案中的某個項目參考別名,請以貨幣符號 ($) 和括號 (()) 括住 <Path/> 項目的 Id:
<Nodes>
<Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
<Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>
若要編輯 .dgml 檔案,請參閱 編輯和自訂相依性圖形。
了解有向圖形查詢語言 (DGQL)
DGQL 是可用以建置 DGML 的輕量型查詢語言。 DGQL 陳述式採取節點選取和動作交替出現的模式,也就是說每次的節點選取會成為下一個動作的輸入,而該動作的輸出又會成為下一次節點選取的輸入,依此類推。
DGQL 陳述式的格式如下:
<node selection> / <action> / <node selection> / <action> / ...
下表說明用以選取節點的 DGQL 語法:
* |
選取所有節點。 |
+ "text" |
選取所有包含 "text" 的節點。 |
+ Id.Equals("text") |
選取 Id 等於 "text" 的所有節點。 |
+ Background.Contains("text") |
選取 Background 屬性的值包含字串 "text" 的所有節點。 |
+ "text1" + "text2" + ... |
選取所有符合 "text1" 或 "text2" 的節點。 |
+ MyProperty="True" |
選取所有具有屬性 MyProperty、且其值為 "True" 的節點。 |
- Label.Contains("text") |
選取所有節點,但 Label 屬性中包含字串 (Contains) "text" 的節點除外。 |
+ Category.Is("MyCategory") |
選取所有具有 MyCategory 分類,或具有繼承自 MyCategory 之分類的節點。 |
下表說明可對選取的節點執行之有向動作的範例:
範例動作 |
描述 |
---|---|
Microsoft.Contains |
傳回輸入節點所包含的所有節點。 您可以將 Contains 取代為不同的連結分類。 |
Microsoft.Open |
開啟輸入節點的原始程式碼。
注意事項
只能在 Visual Studio 中運作。
|
Microsoft.AllOutBoundLinks |
傳回所有從輸入節點連出至的目標節點。 |
Microsoft.AllInboundLinks |
傳回所有連入至輸入節點的來源端節點。 |
Microsoft.Core.CreateGroupsByProperties |
叫用 GroupByProperties 動作。 |
Microsoft.AllNodes |
傳回整個圖形中到目前為止的所有節點。 |
資料驅動型動作只會根據輸入節點與連結中的資料來選取項目。 在使用資料驅動型動作比對分類時,會納入繼承的分類。 下表說明資料驅動型動作的範例:
型別 |
描述 |
---|---|
Node:Both:Category |
傳回所有具有分類 Category,且與輸入節點有連結 (指向自己或指向輸入連結) 相連的節點。 |
Link:Both:Category |
傳回所有與輸入節點有連結 (指向自己或指向輸入連結) 相連,且具有分類 Category 的節點。 |
Link:Backward:Category |
傳回所有具有指向輸入節點的連結,且具有分類 Category 的節點。 |
Link:Forward:Category |
傳回所有具有從輸入節點指過來的連結,且具有分類 Category 的節點。 |
秘訣
一組輸入節點通常會有一個「預設」動作,由 [架構總管] 自動選取。 若要獲得相同的行為,請使用空白動作://
空白字元在 DGQL 中不具意義,因此必要時您可以將查詢全都寫在同一行。 使用 GraphCmd 加上 –exec 選項時,這將有所幫助。
偵錯 DGQL 時,使用 [架構總管] 中的動作 "Execute Expanded" 可讓您看見查詢的每個步驟,並查出未產生預期結果的步驟。
範例
下列 DGQL 陳述式會依照下列步驟中的說明執行查詢:
+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
選取 [架構總管] 的第一個資料行的 [類別檢視] 節點。
執行動作「Microsoft.Solution.ClassView",傳回方案中的所有命名空間。
使用 * 選取所有命名空間。
選取全部具有 CodeSchema_Class 分類且以連結與這些命名空間相關聯 (不論連結方向為何) 的節點。 這些通常會是內含項目連結。
將產生的類別篩選為只顯示具有屬性 CodeSchemaProperty_IsPublic="True" 的類別。
就技術上而言,動作 "Microsoft.Solution.ClassView" 因為是 [類別檢視] 節點的「預設」動作,所以並不必要。 因此,您可以將該動作取代為 // 以簡化查詢,並將查詢寫成單一一行,如下所示:
+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")
疑難排解
下列項目未提供 C 和 C++ 程式碼支援:
基底型別 (Base Type) 不會出現在包含父代階層架構中的圖形。
大部分的 [顯示] 功能表項目提供 C 和 C++ 程式碼無法使用。
可能會發生下列問題,在建置 C 和 C++ 程式碼產生相依性圖形時:
問題 |
可能的原因 |
解決方式 |
---|---|---|
不會產生相依性圖形。 |
方案中的專案成功建立。 |
更正發生的建置錯誤然後重新產生圖形。 |
當您嘗試從 [架構] 功能表產生相依性圖形時,Visual Studio 會變得反應遲緩。 |
程式資料庫 (.pdb) 檔案可能會損毀。 .pdb 檔案會儲存偵錯資訊,例如型別、方法和原始程式檔資訊。 |
重建方案後再試一次。 |
IntelliSense 瀏覽資料庫的某些設定已停用。 |
某些 IntelliSense 設定可能已在 Visual Studio [選項] 對話方塊中停用。 |
開啟這些設定來加以啟用。 請參閱 進階、C/C++、文字編輯器、選項。 |
[未知方法] 訊息出現在方法節點上。 發生這個問題是因為無法解析方法的名稱。 |
二進位檔可能沒有基底重新配置表格。 |
在連結器中開啟 /FIXED:NO 選項。 請參閱 /FIXED (固定基底位址)。 |
程式資料庫 (.pdb) 檔案可能無法建置。 .pdb 檔案會儲存偵錯資訊,例如型別、方法和原始程式檔資訊。 如需詳細資訊,請參閱[OBSOLETE] 程式資料庫檔案 (C++)。 |
在連結器中開啟 /DEBUG 選項。 請參閱 /DEBUG (產生偵錯資訊)。 |
|
無法在預期的位置中開啟或找到 .pdb 檔案。 |
請確定預期的位置中有 .pdb 檔案存在。 |
|
已從 .pdb 檔案中移除偵錯資訊。 |
如果在連結器中使用 /PDBSTRIPED 選項,請改為包含完整的 .pdb 檔案。 |
|
呼叫端不是函式,而且為二進位檔案中的 Thunk 或資料區段中的指標。 |
當呼叫端為 Thunk 時,請嘗試使用 _declspec(dllimport) 來避免 Thunk。 請參閱: |
哪些其他是否能執行?
哪裡可以取得詳細資訊?
分類 |
連結 |
---|---|
論壇 |
|
網誌 |