[英]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.