[英]Univeral Windows Platform C++ with x64 assembly language
我正在考慮在 Windows 10 上使用 C++ 和匯編語言。我從桌面上的 x64 asm 開始,然后我想在 Win 10 IOT Core 上嘗試 ARM asm。
該項目通常會有大量的 C++ 代碼和一些匯編語言代碼,但我會看到它的去向。 為什么要使用匯編? 純粹是為了好玩。 整個項目是一個愛好回到 C++ 和匯編。
UWP C++ 似乎是要走的路,即最新的微軟編程技術。 仍然支持 Windows 桌面 C++(即 Win32 或控制台),但我寧願堅持使用 UWP。
我快速閱讀了 UWP C++,沒有學習 XAML 的基礎知識,而 C++ 又回到了我的身邊(我已經很多年沒有接觸過它了)。
使用 Visual Studio Professional(引擎蓋下的 masm)和 x64 asm。
我有一個簡單的 Hello World 應用程序。 一個文本框和一個按鈕。 該項目包括一個 .asm 文件,其中包含一個簡單的函數,該函數將兩個數字相加並以 rax 形式返回結果。 這個 (asm) 函數在按鈕單擊事件中被調用並輸出到文本框文本。
主頁.xaml.cpp
extern "C" int SomeFunction();
void LearningUWPwithCPP::MainPage::Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
greetingOutput->Text = SomeFunction().ToString();
}
主頁.xaml
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel x:Name="contentPanel" Margin="120,30,0,0">
<TextBlock HorizontalAlignment="Left" Text="Hello World" FontSize="36"/>
<TextBlock Text="Click the button"/>
<Button x:Name="inputButton" Content="Click me" Click="Button_Click"/>
<TextBlock x:Name="greetingOutput"/>
</StackPanel>
</Grid>
測試ASM.asm
.CODE
SomeFunction PROC
mov rax, 5
add rax, 6
ret
SomeFunction ENDP
END
更多信息...
問題:我收到“未解決的外部”錯誤
有用的提示
有了這些點,很明顯該項目沒有找到我的 asm 文件。 我不確定如何包含一個 asm 文件。 而且我懷疑 extern 是 Win32 C++ 時代的殘余,可能無法在 UWP 中使用。
任何幫助深表感謝。
根據您執行操作的順序,VS 解決方案資源管理器中 asm 文件的某些屬性可能設置不正確。
常見的解決方案包括從解決方案資源管理器中刪除/重新添加 asm 文件,或為每個構建配置手動將“ Excluded from Build
設置為“無” ,將“ Item Type
為Microsoft 宏匯編程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.