如何使用 vs2015 为 ARM 构建一些 dll 代码
How can I build some dll code to ARM with vs2015
我正在 ARM 设备 (IotCore) 上制作一些 uwp 应用程序,我想通过 p/inbvoke 在 uwp 应用程序中使用一些遗留的本机 dll。
如何使用 visual studio 2015 将此 dll 项目构建为 ARM arch?
这是我的代码,它在我的 x64 开发机器 (win10x64) 上运行良好。
这是本机 dll 代码:
#ifdef MYSIMPLENATIVEDLL_EXPORTS
#define MYSIMPLENATIVEDLL_API extern "C" __declspec(dllexport)
#else
#define MYSIMPLENATIVEDLL_API extern "C" __declspec(dllimport)
#endif
MYSIMPLENATIVEDLL_API int Add(int x, int y);
MYSIMPLENATIVEDLL_API int Add(int x, int y)
{
return x + y;
}
这是 uwp 应用程序代码:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var result = Add(1, 2);
var dlg = new MessageDialog($"result : {result}");
await dlg.ShowAsync();
}
[DllImport("MySimpleNativeDll")]
static extern int Add(int x, int y);
}
完整源代码:https://github.com/HyundongHwang/MyNativeDllUwpIntegApp
为 DLL 创建项目时,您需要将目标 "Windows Universal" 而不是 "Win32"。这样的 DLL 项目将在平台下拉列表中有一个 ARM 平台(就像你现在有 Win32 和 x64)。
我正在 ARM 设备 (IotCore) 上制作一些 uwp 应用程序,我想通过 p/inbvoke 在 uwp 应用程序中使用一些遗留的本机 dll。
如何使用 visual studio 2015 将此 dll 项目构建为 ARM arch?
这是我的代码,它在我的 x64 开发机器 (win10x64) 上运行良好。
这是本机 dll 代码:
#ifdef MYSIMPLENATIVEDLL_EXPORTS
#define MYSIMPLENATIVEDLL_API extern "C" __declspec(dllexport)
#else
#define MYSIMPLENATIVEDLL_API extern "C" __declspec(dllimport)
#endif
MYSIMPLENATIVEDLL_API int Add(int x, int y);
MYSIMPLENATIVEDLL_API int Add(int x, int y)
{
return x + y;
}
这是 uwp 应用程序代码:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var result = Add(1, 2);
var dlg = new MessageDialog($"result : {result}");
await dlg.ShowAsync();
}
[DllImport("MySimpleNativeDll")]
static extern int Add(int x, int y);
}
完整源代码:https://github.com/HyundongHwang/MyNativeDllUwpIntegApp
为 DLL 创建项目时,您需要将目标 "Windows Universal" 而不是 "Win32"。这样的 DLL 项目将在平台下拉列表中有一个 ARM 平台(就像你现在有 Win32 和 x64)。