我在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
答案 0 :(得分:1)
在为DLL创建项目时,您需要定位“Windows Universal”而不是“Win32”。这样的DLL项目将在平台下拉有一个ARM平台(就像你现在有Win32和x64那样)。