本人很菜,接触C#不久,厂商提供的SDK是ActiveX控件,ocx文件,要求不要用它的UI,所以进行封装,我建了一个类库工程把它封成了一个dll文件,原有的.ocx文件大小超过1M,我封装后的dll只有28K,在本机上编写的代码可以直接调用封装后的dll来完成以前ocx里的方法,但是代码移植到另外的机器上的时候就不能运行了,调试发现dll中封装的类的对象在代码中根本就没有被new。
很困惑,
大家新年快乐。
很困惑,
大家新年快乐。
解决方案 »
- c# 封装的图像类和自己bitmap类关联
- winform开机托盘,手动启动不托盘
- 能否将textbox的id编成数组的模式
- 我在作展销系统时,有一页面的背景图是张图片,此图中每个方框都是动态的,有3种方框,白色和黑色方框表示展位没有出租,红色方框表示展位已出租给一个公司,橙色方框表示此展位已由一个公司预定吧,自动显示此公司
- winform 自定义控件 的问题
- textBox的问题
- 派生类中的重载问题
- PropertyGrid组件 弹出一个Form 紧急求助
- 有人能给出windows datagrid的详细用法吗?
- 如何在窗口中画各种图形??
- 用C#写的类库如何发布?
- C# 怎么改变textbox度高度
首先添加引用
然后添加名字空间
然后使用
不同电脑上后使用regsvr32注册
刚刚把ocx unreg了一下,报错是COMException的没有注册类别。机器上有VS2005,.NET正确安装了,以前的前辈封装的早些的ocx可以在目标机器上使用,是不是我没打包的原因?请教下我该怎么给类库工程打包。谢谢!兔年大吉!
请教tlbimp mydll.dll /out:my.dll 是什么意思呀?
那个工程的引用名字空间,使用方法都是对的,ocx也在目标机器用regsvr32注册了。
也有两个代理类AxInterop.XXXX.dll和Interop.XXXX.dll。
报错好像是没有引用到真正的ocx,我不知道该怎么办啊。
谢谢,新年快乐!
如果你使用notepad.exe编写程序,手工写编译指令,那么就用得着了。如果你使用vs开发环境,vs会自动产生.net调用COM组件的dll代码。
所谓“封装之后的dll”只是调用组件的几条代码,并不包含ocx。它要去你的机器注册表上找注册的ocx组件。