2016-12-23 65 views
0

我正在ARM設備(IotCore)上製作一些uwp應用程序,並且我想通過p/inbvoke在uwp應用程序中使用一些傳統本機dll。我如何使用vs2015構建一些dll代碼到ARM

如何使用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

在創建DLL的項目,你需要目標「Windows通用」而不是「Win32」。這樣的DLL項目將在平臺下拉菜單中有一個ARM平臺(就像你現在有Win32和x64一樣)。

+0

你救了我的日子!非常感謝你。 :) 我修改了我的示例代碼並推送它們。 –