Big*_*uce 9 .net c# com regasm visual-c++
在VC++项目中,我试图创建一个包含在C#项目中的C#类的实例(通过COM).
事实
以下是我尝试从C#.dll创建.NET对象实例的示例.我试图实例化的具体类叫做Employee,为了简单地提出我的问题,实现了IPerson接口:
CSharpProjectName::IPersonPtr pPersonPtr;
HRESULT hr = pPersonPtr.CreateInstance(CSharpProjectName::CLSID_Employee);
Run Code Online (Sandbox Code Playgroud)
即使我使用"regasm/codebase"注册c#.dll并确认注册表中存在密钥,为什么我会收到"未注册类"错误?
任何帮助将不胜感激.谢谢!
我过去遇到过这个问题,原因是两个进程都不是32位或64位.如果您运行的是32位操作系统,则可以立即停止阅读,因为我所说的不适用.
使用regedit尝试在注册表中找到您的ProgIds和CLSID.如果您的C++项目是32位,请确保您的C#类已注册到32位配置单元 - HKEY_CLASSES_ROOT\Wow6432Node.如果你的C++项目是64位的,请确保您的C#类被注册到64位蜂箱 - HKEY_CLASSES_ROOT.
如果您需要注册的64位蜂巢,你可能需要调用RegAsm.exe版本下的C:\ WINDOWS\microsoft.net\framework64 ...
出现问题的另一种可能性是您可能需要运行.NET 4.0版本的regasm.exe.如果您只是在命令行中键入"regasm",它将为您提供正在运行的regasm版本.您可能需要键入.NET 4.0版本的regasm的完整路径 - 可在c:\ windows\microsoft.net\framework\v4.0.3019\regasm.exe中找到.
| 归档时间: |
|
| 查看次数: |
19349 次 |
| 最近记录: |