Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在可移植类库中使用x86 dll 最终目标 我在C++中构建了一个x86 DLL。我需要能够使用一个可移植类库的dll。这可以是直接的,也可以是间接的,但是我想让整个应用程序在用户计算机上保持本地 我试过的_C#_C++ Cli_Portable Class Library - Fatal编程技术网

C# 在可移植类库中使用x86 dll 最终目标 我在C++中构建了一个x86 DLL。我需要能够使用一个可移植类库的dll。这可以是直接的,也可以是间接的,但是我想让整个应用程序在用户计算机上保持本地 我试过的

C# 在可移植类库中使用x86 dll 最终目标 我在C++中构建了一个x86 DLL。我需要能够使用一个可移植类库的dll。这可以是直接的,也可以是间接的,但是我想让整个应用程序在用户计算机上保持本地 我试过的,c#,c++-cli,portable-class-library,C#,C++ Cli,Portable Class Library,我设计了一个c++/cli包装器来允许访问dll。我通过一个x86控制台C#项目确认了它的工作原理 我尝试直接从可移植类库使用包装器,但它不允许引用 我尝试使用wcf库中的包装器,但该库在跨平台dll方面存在问题 我认为我把这条路弄得太复杂了,但我不熟悉做我想做的事情的方法。我无法以64位重建dll并并行加载—我只能选择使用x86 dll 谢谢你的帮助 >为什么你需要从一个可移植类库引用C++ DLL?C++ DLL不能从多个平台上使用。PCL的要点是,它们可以在多个平台上运行,但这意味着它

我设计了一个c++/cli包装器来允许访问dll。我通过一个x86控制台C#项目确认了它的工作原理

  • 我尝试直接从可移植类库使用包装器,但它不允许引用
  • 我尝试使用wcf库中的包装器,但该库在跨平台dll方面存在问题
我认为我把这条路弄得太复杂了,但我不熟悉做我想做的事情的方法。我无法以64位重建dll并并行加载—我只能选择使用x86 dll


谢谢你的帮助

>为什么你需要从一个可移植类库引用C++ DLL?C++ DLL不能从多个平台上使用。PCL的要点是,它们可以在多个平台上运行,但这意味着它们引用的所有内容都需要是PCL


可能我建议使用所述的抽象模式。

如果您谈论的是在x64进程中加载和使用x86 dll,那么答案是否定的。但是,您可以使用COM。要添加到@EdS.comment,您需要研究使用COM DllSurrogate(它将使用DllHost.exe托管dll)。使用此COM方法,您可以使exe在x86模式下运行时加载进程中的dll,但在x64模式下运行时在进程外与dll对话。我对COMs一无所知,但我将对此进行研究,看看是否可以使其正常工作。谢谢你的帮助。我实际上在发帖前读过那篇文章,但后来又重新读了一遍。我重新考虑了设计,并决定使用webAPI公开DLL的中央服务器不会损害整体解决方案(在我的情况下,我认为它实际上会有所帮助)。谢谢你的意见。