我有一个AR应用程序。我使用visual studio 2013创建了一个c ++ dll。我在我的AR应用程序中使用这个dll,如下所示:
**In private members region :**
[DllImport ("DllExample")]
private static extern int func(int x, int y);
.......
**In a C# function :**
if (func((int)pos.x, (int)pos.y) == -1) {
...
}
else {
...
}
我的团结应用程序可以很好地统一编辑器。我为Android构建这个应用程序。当我在Android设备上运行它时,它不起作用。
C ++ dll的内容:
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <fstream>
#include <iostream>
extern "C" __declspec(dllexport) int func(int x, int y);
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
__declspec(dllexport) int func(int x, int y)
{
cv::RNG rng(12345);
cv::Mat image0, image, gray, mask;
int ffillMode = 1;
int loDiff = 20, upDiff = 20;
int connectivity = 4;
int isColor = true;
bool useMask = false;
int newMaskVal = 255;
return x;
}
在Unity C#文件中,如果我删除调用dll函数,应用程序在我的Android设备上运行正常。我使用免费的统一版本。如何在移动设备上使用c ++ dll?