vc6做成的dll在C#.net中可以引入但是为什么不被注册

appleblossom 2006-06-01 06:53:01
别人提供的vc6的lib和.h文件,我将其在vc++6.0里编译成dll
在C#.net中引入到工程里成功,
但是
1.用下面的语句不能被识别:
Assembly asem = Assembly.LoadFile(@"C:\\Ziyue_conv.dll");
Type[] types =asem.GetExportedTypes();
2.而且无法用regsvr32对其注册,提示说已加载,但没找到DllRegisterServer的输入点
请问是什么原因?
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lalac 2006-06-01
  • 打赏
  • 举报
回复
Assembly asem = Assembly.LoadFile(@"C:\\Ziyue_conv.dll");
这个只能加载DotNET的Assembly,对于Win32 Dll和ActiveX,COM都会报错。
lalac 2006-06-01
  • 打赏
  • 举报
回复
我不清楚你的Dll是什么类型的,Win32 Dll还是ActiveX,或者COM。
如果你是Win32 DLL,那么你所做的都1显然是不会有作用,你不是COM,也不是ActiveX,2就不用说了。这时候如果你要使用你的Dll,应该使用PInvoke,类似下面的声明:

[System.Runtime.InteropServices.DllImportAttribute("Ziyue_conv.dll")]
public static extern void MethodName(ParamType param);
这里还需要做的是把你的Dll拷到C#程序的bin/Debug下。

如果你是ActiveX,用你的方法肯定就可以了。
如果你的是COM,那么你可以在Reference中的COM选项下直接加到工程里。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧