C# 从DLL实例化类时的COMException
我一般不熟悉.NET和windows(但有C/C++方面的经验),在尝试实例化dll中定义的类时遇到了问题 我的设置: 在Visual Studio 2013中,我的解决方案包含两个项目:C# 从DLL实例化类时的COMException,c#,.net,dll,C#,.net,Dll,我一般不熟悉.NET和windows(但有C/C++方面的经验),在尝试实例化dll中定义的类时遇到了问题 我的设置: 在Visual Studio 2013中,我的解决方案包含两个项目: c#windows应用程序(.NET 4.5) 一个C++ DLL(继承了旧代码)——称为DLLIB .DLL< /LI> 作为c#应用程序的预构建步骤,我使用tlbimp从dll生成COM互操作。这给了我interop.dllLib.dll,我在c#项目中添加了它作为参考 当我试图从c#项目实例化一个dll
- 以管理员身份运行VisualStudio
- 活动解决方案是调试x86
- 项目上下文是x86(c#)和Win32(dll)
- regsvr32/n/i:user dllLib.dll是成功的,但有趣的是,使用/u注销它失败
非常感谢您就尝试什么或疑难解答提供的任何建议。运行regsvr32当前目录应与您尝试注册的dll位于同一目录中。当您注册此com dll时,它需要位于正在生成的调试或发布目录中。稍后您可以克服这些限制,但这可能会为您清除一两个细节,以便您现在看到类的创建和实例化。以管理员身份运行VS是相关的。执行干净的构建有时会导致问题。确保您的com dll在目录中也有它的依赖项。好的,我刚刚意识到运行regsvr32 dllLib.dll允许代码在不引发异常的情况下运行。它还允许我毫无怨言地注销dll。我继承的dll代码在regsvr32 post-build命令上使用了/n/I:user标志,但我对Windows的无知意味着我不清楚这有什么用途。执行此操作是否有安全原因?Run regsvr32当前目录应与您尝试注册的dll位于同一目录中。当您注册此com dll时,它需要位于正在生成的调试或发布目录中。稍后您可以克服这些限制,但这可能会为您清除一两个细节,以便您现在看到类的创建和实例化。以管理员身份运行VS是相关的。执行干净的构建有时会导致问题。确保您的com dll在目录中也有它的依赖项。好的,我刚刚意识到运行regsvr32 dllLib.dll允许代码在不引发异常的情况下运行。它还允许我毫无怨言地注销dll。我继承的dll代码在regsvr32 post-build命令上使用了/n/I:user标志,但我对Windows的无知意味着我不清楚这有什么用途。这样做有安全理由吗?