popdes 发表于 2022-10-7 14:48

有个ocx不能放入到VS2022的工具箱中, 求助

本帖最后由 popdes 于 2022-10-7 14:50 编辑

手里有个VisioForge_Video_Capture.ocx , 这个是摄像头组件, 之前用在aardio和vb6中都可以使用, 在vb6中可以添加到工具箱中,拖拽就可以使用了,
今天拿到c#中, 怎么弄都弄不到vs2022的工具箱中, 网上也搜了各种办法, 都不行, 有点怀疑是这个ocx可能引用了其他的dll导致的,
但是,奇怪的是在aardio和vb6中只用这一个文件也是可以用的.
本人刚研究c#没多久, 特地来求解?

VisioForge_Video_Capture.ocx 文件如下:
链接:https://pan.baidu.com/s/18IUpSNNVwAF2oZ89cvC2QQ?pwd=22d8
提取码:22d8

另外, 上面的摄像头ocx是从官方安装后只提取的ocx这个文件, 如果从官方最新版exe安装这个控件, 在vs2022工具箱内是可以添加的..., exe安装了不少dll.....哎
所以, 我又测试了另外一个波形图的ocx , 这个是我自己从源码编译的, 在aardio和vb6中同样可以使用, 但是在vs2022也不行,
索性就一起发出来, 求解惑.

ST_Curve.ocx 文件如下:
链接:https://pan.baidu.com/s/11-N994zVc5Yy_A391LNBMQ?pwd=65g9
提取码:65g9

5151diy 发表于 2022-10-7 21:51

有可能你要做一个绿化版,是不是差文件

popdes 发表于 2022-10-8 07:32

本帖最后由 popdes 于 2022-10-8 07:34 编辑

5151diy 发表于 2022-10-7 21:51
有可能你要做一个绿化版,是不是差文件
我也是觉得可能是少文件?
但是确实在其他两个软件里这一个文件就行了,还有第二个波形图那个是完整的文件,也不行,就是放不到工具箱中,奇怪了。
我网上搜到一篇文章,可以手动用vs中aximp命令将ocx导出两个AX开头的dll,然后手动添加这两个dll引用,然后手动在界面代码寄初始化这个ocx组件界面。
我用这个方法测试了下,确实可以使用ocx了,
那么问题来了,既然手动码代码是可以调出图形的,是不是就说明ocx文件没有问题?那问题出在哪里呢?为什么放不到VS的工具箱中呢?

5151diy 发表于 2022-10-8 07:41

把此ocx文件注册一下

popdes 发表于 2022-10-8 12:46

5151diy 发表于 2022-10-8 07:41
把此ocx文件注册一下

手动regsvr32注册过了....... 不注册也没办法拖到工具箱里啊

popdes 发表于 2022-10-9 09:49

就是想知道为什么不能添加到工具箱中.......

没人回答, 结帖, 那就留下我使用ocx的方法吧
自己手动 aximp st_curve.ocx 生成要用的类库, 然后手动引用 , 然后写代码自己加载到界面

private void Form1_Load(object sender, EventArgs e)
{
    var axSTcurve1 = new AxST_CurveLib.AxST_Curve();
    axSTcurve1.Dock = DockStyle.Fill;
    this.pictureBox1.Controls.Add(axSTcurve1);

    axSTcurve1.SetShowMode(0x80);
    //axSTcurve1.CtlBackColor=0x000000;
    axSTcurve1.CtlBackColor = 0xFFFFFF;
    axSTcurve1.CtlForeColor = 0x000000;
    axSTcurve1.AxisColor = 0x878787;
    axSTcurve1.GridColor = 0xF0F0F0;
    axSTcurve1.EnablePreview(false);
    axSTcurve1.EnableHelpTip(false);
    axSTcurve1.EnableHZoom(true);
    axSTcurve1.SetGridMode(3);
    axSTcurve1.LimitOnePage(true);
    axSTcurve1.SetVPrecision(2);
    axSTcurve1.SetHPrecision(0);
    axSTcurve1.SetHInterval(10);
    axSTcurve1.SetUnit("温度和湿度");
    axSTcurve1.AddLegend(1, "aaa", 0xC08E45, 0/*_PS_SOLID*/, 1, 0x0, 255, 0/*CurveMode0/3*/, 1, 0xFF, true);
    for (int i = 0; i < 500; i++)
    {
        axSTcurve1.AddMainData(1, i.ToString(), (float)Math.Sin(i * 0.05), 0, 1, true);
        //axSTcurve1.AddMainData2(1, i, (float)Math.Sin(i * 0.05), 0, 1, true);
    }
}
页: [1]
查看完整版本: 有个ocx不能放入到VS2022的工具箱中, 求助