Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.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# web应用程序上下文中win32 dll和.net dll之间的区别?_C#_C++_Wpf_Web Applications_Xbap - Fatal编程技术网

C# web应用程序上下文中win32 dll和.net dll之间的区别?

C# web应用程序上下文中win32 dll和.net dll之间的区别?,c#,c++,wpf,web-applications,xbap,C#,C++,Wpf,Web Applications,Xbap,我的web应用程序是用WPF(XBAP)编写的,p/调用win32 dll(player.dll用C和C++编写)。我部署了应用程序。当我尝试在IE中运行web应用程序时,最初出现以下错误: System.DllNotFoundException:无法删除 加载DLL“Player.DLL”:指定的 找不到模块。(例外情况 来自HRESULT:0x8007007E) 但是,当我手动将win32 dll复制到客户端PC的C:\Windows\System32时,它工作了,即使我的web应用程序使用

我的web应用程序是用WPF(XBAP)编写的,p/调用win32 dll(
player.dll
用C和C++编写)。我部署了应用程序。当我尝试在IE中运行web应用程序时,最初出现以下错误:

System.DllNotFoundException:无法删除 加载DLL“Player.DLL”:指定的 找不到模块。(例外情况 来自HRESULT:0x8007007E)

但是,当我手动将win32 dll复制到客户端PC的
C:\Windows\System32
时,它工作了,即使我的web应用程序使用了其他几个.Net dll,我也没有手动复制它们

因此,我很困惑,为什么我只需要将win32 dll复制到客户端PC,而不需要将.Net dll复制到客户端PC?web应用程序访问它们的方式是否不同

--

相关主题如下:


定位程序集(.NET)的规则与定位本机DLL的规则不同。以下是两个规则集:

  • 组件:
  • Win32 DLL:

所谓“本机DLL”,是指操作系统或/和Visual studio附带的DLL吗?它是否也包括我在VC++中创建的DLL?所谓本机DLL,我指的是任何非.NET程序集DLL。本机DLL导出函数和数据以及资源。例如系统组件,如User32.dll,以及使用VisualC++构建的dll。另一方面,程序集不导出任何内容(导出表为空)。这些是CLR使用的特殊(非本机)DLL,您可以从任何.NET语言使用它们。