.Netframework应用程序PCL和CGAL调用C ++ DLL时缺少模块/相关性

问题描述

我用c ++创建了一个代码,以使用PCL和CGAL进行一些计算。我现在想添加一个UI。为此,我计划按照本教程(https://docs.microsoft.com/en-us/visualstudio/debugger/how-to-debug-managed-and-native-code?view=vs-2019)在C#.Netframework应用中创建一个UI,然后将其调用C ++ DLL。

代码的大多数部分都可以工作,但是有些行会引起问题,我无法确定问题可能是什么。基于该错误,似乎可能缺少依赖项,但是由于代码可以作为C ++应用程序正常运行,所以我看不出这是怎么回事。

我确定会引起问题的行:

1:
pcl::io::savePCDFileASCII("test_pcd.pcd",cloud);

2:
Poisson_reconstruction_function function(points.begin(),points.end(),Point_map(),Normal_map());

3:

//Does not work with: typedef CGAL::Parallel_tag Concurrency_tag;
//Works with: typedef CGAL::Sequential_tag Concurrency_tag;
CGAL::pca_estimate_normals<Concurrency_tag>(points,nb_neighbors,CGAL::parameters::point_map(Point_map()).normal_map(Normal_map()));

在最后一种情况下,并行执行似乎是一个问题。对于其他几行,我找不到解决方案。

有人知道使代码正常工作所缺少的内容吗,为什么仅当将其编译为DLL而不是c ++可执行文件时才成为问题? ? 请让我知道其他信息会有所帮助。

谢谢!

显示的错误是:

Exception thrown: 'System.DllNotFoundException' in MIxed_Mode_Calling_App.exe
An unhandled exception of type 'System.DllNotFoundException' occurred in MIxed_Mode_Calling_App.exe
Unable to load DLL 'C:\Users\d\Box\Daniel\RE\Surface Project\PCL_Project\MixedMode\build\Release\MixedMode.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

这个问题是有关的:Calling a C++ function from C# program

编辑:我已经使用依赖项遍历器来查找可能丢失的依赖项。它显示了数百个依赖项缺失,但其中许多似乎是误报。这是缺少的模块,前两个模块有很多不同的变体: API-MS-WIN -..., EXT-MS -..., HVSIFILETRUST.DLL, IESHIMS.DLL

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)