平时很少写心得,研究好几天的东西分享给各位
1. C#如何加载VB6的ActiveX.exe
(1)把ActiveX.exe引用到C#里,调用ActiveX属性为Public公开类,即可引用ActiveX.exe相关功能
(2)C#生成的程序要想运行,需要把引用加载的ActiveX.exe放到<bin>同一目录,并注册ActiveX.exe
(3)注册方式 ActiveX.exe /regserver,可做成bat批处理执行
(4)此时bin内C# exe程序可运行
(5)运行后加载ActiveX.exe会作为新的进程独立运行
(6)C#程序与ActiveX.exe程序之间的通信通过ActiveX.exe开放出来的Function,Event,Property等实现
2. C#进程如何加载VB6进程的StdPicture,IPictureDisp图片
两进程都是自己编写,方法仅做参考
一开始想到StdPicture,IPictureDisp图片存到文件或clipbrd.exe剪切板,再用C#程序加载,功能虽然实现,到不理想
(1)C#引用VB运行库msvbvm60.dll ,会自动生成stdole.dll
(2)VB6中用到PropertyBag把StdPicture,IPicture序列化成Byte数组
(3)C#调用ActiveX.exe相应方法获取此