我正在處理C++項目的32-64位移植,其中包含一些64位平臺不支持的彙編代碼。我想介紹一下我必須遷移的項目的基本信息。該項目的用C++替換內聯彙編代碼
輸出是用於由另一個C++項目
這裏一個lib文件包含彙編代碼的上下文:
int* a = Begin_args; int* b = End_args; (where Begin_args and End_args are int*) while (b > a) { int test = *(--b); __asm push test }
所以基本上我不得不更換聲明
__asm push test
這是我現在面臨的起訴是:
我無法找出流行語句相同推聲明
我不能夠調試項目作爲該項目的輸出是一個lib文件。
我嘗試使用堆棧,數組,隊列,但沒有解決。它不會拋出任何編譯錯誤,但在啓動應用程序時,它會崩潰。
所以我的問題是:
我可以調試任何C++項目,其輸出是一個lib文件?
我問了一些其他的論壇也這個問題,有人告訴我,試圖
va_list
但我無法理解va_list
將如何工作,而不是的__asm push test
?那麼最後,如何用C++代替這個Asm代碼/如何取代這個Asm代碼呢?
任何幫助將不勝感激,因爲我在這個問題很長時間stucked。
如果您對應用程序和庫進行了調試構建,併爲應用程序使用了庫的調試版本,那麼您應該能夠調試庫。 –
'va_list'在這裏可能是正確的答案。你有沒有看過如何使用它的例子? –
是的,我看,但我無法理解如何在這裏使用它。你能告訴我如何在代碼中使用它? 謝謝 – vsoni