怎么样将 类显示公开为com组件

crazysnowwolf 2008-11-05 01:39:40

pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");

Microsoft.VisualBasic.Interaction.CreateObject 显示只能在 将类显示公开为com组件 才能创建对象

我已经完成了这个类了 在windowsForms 下运行正常
可是在webforms总是无法创建对象 在VS2005中 如果右键点击查看 又是可以的

[Guid("251dca74-2d27-4036-83df-6dea51058c76")]
public interface pdf2img_Interface
{
[DispId(1)]
object GetObject();

}

// 事件接口Database_COMObjectEvents
[Guid("251dca74-2d27-4036-83df-6dea51058c76"),
InterfaceType(ComInterfaceType.InterfaceIsIDispatch), ComVisible(true)]
public interface pdf2img_Events
{

}


[Guid("251dca74-2d27-4036-83df-6dea51058c76"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(pdf2img_Events))]
public class Crateobj:pdf2img_Interface
{
public object GetObject()
{
return Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");
}
}
写了这个类 网上找的 关于 c# COM的
我是直接引用的 强命名了 还是无法创建 我注册com组件也出错

搞了一周了 没法了
...全文
475 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoulehua 2009-03-19
  • 打赏
  • 举报
回复
关注ing
sl2161 2009-03-19
  • 打赏
  • 举报
回复
顶一下
waitwarwolf 2009-03-19
  • 打赏
  • 举报
回复
看不懂!顶
wangyue20020509 2009-03-12
  • 打赏
  • 举报
回复
把AssemblyInfo.cs文件中的下列语句封上就可以了

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
//[assembly: Guid("F07AE003-0440-4072-8DD2-3C8FD6D83463")]
taick 2008-12-19
  • 打赏
  • 举报
回复
我来顶一下
crazysnowwolf 2008-11-11
  • 打赏
  • 举报
回复
最新的更新


pdfDoc = (Acrobat.CAcroPDDoc)Microsoft.VisualBasic.Interaction.CreateObject("AcroExch.PDDoc", "");

Microsoft.VisualBasic.Interaction.CreateObject 显示只能在 将类显示公开为com组件 才能创建对象

我已经完成了这个类了 在windowsForms 下运行正常
可是在webforms总是无法创建对象 在VS2005中 如果右键点击查看 又是可以的

这个问题几天了 没有答案 于是我把改为控制台程序 在asp.net 里面通过调用CMD 来实现 可是这样在调试的时候可以 通过LOCALHOST 来访问还是无法创建对象
mjjzg 2008-11-08
  • 打赏
  • 举报
回复
程序集信息按钮选种COM,再在生成项里面,把COM interop选中,重新生成后再添加引用
crazysnowwolf 2008-11-08
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 eglic 的回复:]
看来你的问题是WebForm无法创建对象

1、给你的Class实现IObjectSafety
参考这篇文章 http://dev.csdn.net/article/21/21583.shtm

2、申请一个数字签名,可以先拿一个免费的试试
用signcode.exe给你的dll加上数字签名

3、调整IE的安全设置
[/Quote]

这不是个active 控件 原本是个运行在服务器上的DLL
kimmking 2008-11-08
  • 打赏
  • 举报
回复
.net下无法生成纯的com组件,其dll中没有com接口的描述符。

.net下生成的dll需要使用tlbexp导出成原生程序文件可以识别的类型库。
然后才可以作为传统的com组件使用。注意的是还是必须在目标机器上有对应的.net fx的支持。
crazysnowwolf 2008-11-08
  • 打赏
  • 举报
回复
已经是那样的了

还是

错误 1 程序集“D:\CollegeProject\ICMSASSISTANT\CreateOBJ\bin\Debug\CreateOBJ.dll”未能转换为类型库。类型库导出程序在处理“CreateOBJ.pdf2img_Interface, CreateOBJ”时遇到了错误。错误: 找不到元素。 CreateOBJ
是是非非 2008-11-07
  • 打赏
  • 举报
回复
看来你的问题是WebForm无法创建对象

1、给你的Class实现IObjectSafety
参考这篇文章 http://dev.csdn.net/article/21/21583.shtm

2、申请一个数字签名,可以先拿一个免费的试试
用signcode.exe给你的dll加上数字签名

3、调整IE的安全设置
crazysnowwolf 2008-11-07
  • 打赏
  • 举报
回复
怎么无人问津了 我要顶起来
crazysnowwolf 2008-11-06
  • 打赏
  • 举报
回复
继续 up
killer_liqiao 2008-11-06
  • 打赏
  • 举报
回复
up
crazysnowwolf 2008-11-06
  • 打赏
  • 举报
回复
新的一天 继续等待
crazysnowwolf 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 crazysnowwolf 的回复:]
继续 up
[/Quote]

临时研究中
surpass63 2008-11-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 billlyh 的回复:]
网上关于 c# COM的 资料很少的,正在研究这方面的,共同学习进步,
[/Quote]
在读
crazysnowwolf 2008-11-05
  • 打赏
  • 举报
回复
22:38 了 又一天过了 还是没有解决啊
crazysnowwolf 2008-11-05
  • 打赏
  • 举报
回复
问题是c++ 的不会 这个项目 我用NET 都做完了 就这最后一个问题

继续关注
cpio 2008-11-05
  • 打赏
  • 举报
回复
在项目属性的应用程序项里面,有个按钮是程序集信息,打开它,里面有个使COM可见,选中

再在生成项里面,把 为COM interop 注册选中

然后生成,再用VB添加引用,肯定可以看到了
加载更多回复(12)

110,536

社区成员

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

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

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