做了一个Activex程序,如何生成不同的ocx

boylafong 2014-11-25 04:52:43
我先做了个Activex程序A,A程序很简单,就是在ondraw中加载了一张图片,生成了A.ocx,插件名称为 activex A

A程序备份,再在A程序上修改成B程序(sln文件什么的都改了),变成画线,生成B.ocx,插件名称为activex B

问题:
我编译了B,A就没了;编译了A,那么B就没了。(调用插件地方只能看到一个,有activex A就没有activex B),很明显因为是同一个工程才造成这种情况。

我通过修改工程名字等方法,都不行,在def和 idl文件中修改也都不行
不要告诉我重新再建立一个程序,上面的A跟B只是比喻。

真心求助
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
boylafong 2014-11-26
  • 打赏
  • 举报
回复
引用 2 楼 jianghandaxue 的回复:
你试下随便修改一个工程里面的classid,保持两个控件不一样
引用 3 楼 michael2988 的回复:
对的,控件是通过clsid使用的。
我修改了,可是还是只能用编译最新的那个 http://blog.csdn.net/loveheronly/article/details/9197197
boylafong 2014-11-26
  • 打赏
  • 举报
回复
引用 2 楼 jianghandaxue 的回复:
你试下随便修改一个工程里面的classid,保持两个控件不一样
classid在哪里修改呢?我改idl文件中的uuid会崩溃
boylafong 2014-11-26
  • 打赏
  • 举报
回复
引用 3 楼 michael2988 的回复:
对的,控件是通过clsid使用的。
如何修改clsid,找不到这个
michael2988 2014-11-25
  • 打赏
  • 举报
回复
对的,控件是通过clsid使用的。
jianghandaxue 2014-11-25
  • 打赏
  • 举报
回复
你试下随便修改一个工程里面的classid,保持两个控件不一样
jianghandaxue 2014-11-25
  • 打赏
  • 举报
回复
你这个控件明显是一个控件,因为它们的classid是一样的,你注册A,或者B都是一个控件,相互覆盖了
不用工具箱的话,自己手工添加,需要注意一个问题,就是要用Aximp.exe来包装一下ocx控件的类,然后再程序中引用生成的dll就可以了。 aximp [options]{file.dll | file.ocx} The following command generates MediaPlayer.dll and AxMediaPlayer.dll for the Media Player control msdxm.ocx. aximp c:\systemroot\system32\msdxm.ocxActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。 Windows 窗体只能承载 Windows 窗体控件,即从 Control 派生的类。Aximp.exe 生成可承载于 Windows 窗体上的 ActiveX 控件的包装类。这使您得以使用可应用于其他 Windows 窗体控件的同一设计时支持和编程方法论。若要承载 ActiveX 控件,必须生成从 AxHost 派生的包装控件。此包装控件包含基础 ActiveX 控件的一个实例。它知道如何与 ActiveX 控件通信,但它显示为 Windows 窗体控件。这个生成的控件承载 ActiveX 控件并将其属性、方法和事件公开为生成控件的属性、方法和事件。 如果不包装一下直接用,会出现 灾难性 错误。上面已经说明了原因。 在项目中引用生成的ax开头的dll,在窗体代码中增加: 声明一个公有的控件对象: public AxISPICRECLib.AxISPICREC AxISPICREC; 在InitializeComponent()方法内初始化控件: AxISPICREC = new AxISPICRECLib.AxISPICREC();//必须new对象,否则窗体设计器出问题 ((System.ComponentModel.ISupportInitialize)(this.AxISPICREC)).BeginInit();//初始化开始 this.Controls.Add(this.AxISPICREC);//添加控件 ((System.ComponentModel.ISupportInitialize)(this.AxISPICREC)).EndInit(); this.AxISPICREC.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("AxISPICREC.OcxState")));//设计控件状态 如果遇到“正试图在 os 加载程序锁内执行托管代码”这个错误,请设置“调试”--“异常” "----"Managed Debugging Assistants"中勾掉"LoaderLock" 就可以了。
ComponentOne Studio for ActiveX 目前包括以下产品: SizerOne 通过这一4合1的构建集合ezai您的应用程序中增加缩放、标签和parsing的功能。 SizerOne是VS-OCX的最新版,包含两个缩放构件,可处理简单和复杂的缩放,一个可创建笔记本型和Outlook型的标签,以及一个用于自动对字符串进行parsie的parsing构件。 其他的功能允许您更快递设计网格和表单、在子控件中增框架、灰度图片等。 True DataControl 在您的桌面和网络应用程序的数据源中指定业务逻辑。 True DataControl 是一个ActiveX 控件,可作为OLE DB/ADO 数据源来创建应用程序。 它不仅仅是数据源,还是一个具备逻辑的数据源—可替换MS ADO 数据控件等标准数据源—允许程序员在数据源中将业务逻辑指定为一套业务规则,从而使应用程序更耐用、可扩展和可管理。 True DBGrid Pro 在您的应用程序中加入强大的数据绑定网格。 True DBGrid Pro (由ComponentOne及以前的APEX 软件公司开发)允许最终用户以列表格式浏览、编辑、添加和删除数据。 True DBGrid Pro 可对数据库的界面进行全面管理,使程序员把精力集中在与应用程序有关的重要任务上。 True DBGrid Pro 还可以通过程序员自己的数据源用于非绑定或存储模式。 True DBInput Pro 收集准确、格式化的用户输入。 True DBInput Pro 集成了8个高质量、面向数据的ActiveX 输入控件和5个可为程序员提供所需工具的对象,以创建企业范围内的互联网/内部网前端数据库应用。 这些强化的控件可替换Visual Basic的文本、日历、屏蔽、编辑框和框架控件来进行数据的输入,并可为金融应用程序增加定制的对象。 True DBList Pro 在您的应用程序中加入多列列表和组合框。 True DBList Pro 是一个由两个面向数据的ActiveX构件套,可为您的应用程序提供耐用的数据访问、数据表示和用户界面功能,使其能像网格一样运行,但却对列表有轻量化的要求。 功能包括对原始OLE DB和 ADO的支持、格式化的预览和打印、多列排序和搜索、导出为HTML等。 ComponentOne WebChart (包括表单) 为动态服务器页(ASP)创建独立于浏览器的动态表单。 True WebChart是一个企业图表工具,允许您开发图表或图形,并作为JPEG或PNG文件应用于任何浏览器。 你还可以将表单用作ActiveX控件,以便让最终用户对图表样式和数据的值进行更改。 True WebChart 具有两个服务器端的图表构件- 1个用于2D图表,另一个用于3D构件。 ASP 的web服务器可进行图表的创建并将完整的图表和图形发送到服务器。 VSFlexGrid Pro 增加灵活的网格,以显示列表数据。 VSFlexGrid Pro是对随Visual Basic附带的MSFlexGrid 的升级,可向您提供全范围的功能,以便为数据库应用程序创建灵活、强大的前端。 用一系列新方法在您的Windows、互联网或内部网项目中对动态数据的显示和表示进行定制化,以进行显示、编辑、格式化、组织、汇总和列表数据的打印。 VSSPELL 为任何Visual Basic 应用程序增加拼写检查和同义词词典功能。 VSSPELL 是一个定制化的库,由vsSpell和 vsThesaurus组成。 只需将控件置于您的表单中,您的最终用户即可立即拥有收录25万多个美国英语单词的VSSPELL字典的功能。 该字典具有为错误单词提供建议的功能,并可根据现有词典创建新的主词典(例如,微软Word),并且可忽略或改正所有错误单词,并且具有创建和维护字典的功能。 VSVIEW (包括典型版本) 可对文本进行自动格式化,以便显示或导出。 VSVIEW 允许您在创建表格时将文本进行多列格式化,包括增加表头、页脚、文本框、边框和文本环绕等。 您可以对图片、嵌入的RTF字符串进行渲染并导出到RTF或HTML中。 您甚至还可以在您的应用程序中增加所见即所得的预览,提供无级缩放、缩略图及页面的并排预览。 用户可完全控制缩放和页面的方向。 ComponentOne Query 可在您的应用程序中加入临时查询功能并可被用户直接使用。 ComponentOne的查询构件是一个基于COM,用于应用程序集成的构件,您的最终用户无需为此学习新的技能。 该构件与强大的查询生成引擎、查询引擎和schema 设计器完全兼容。 功能包括: 支持SQL数据库、 Simple DataSour

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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