如何使用vs2015为ARM构建一些DLL代码

时间:2016-12-23 01:45:09

标签: c# visual-studio-2015 uwp pinvoke windows-10-iot-core

我在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

1 个答案:

答案 0 :(得分:1)

在为DLL创建项目时,您需要定位“Windows Universal”而不是“Win32”。这样的DLL项目将在平台下拉有一个ARM平台(就像你现在有Win32和x64那样)。