小弟今天遇到一个问题,我用vs2010 C#语言写了一个ActiveX控件给Qt使用,其中该控件又引用了其他的dll,我发现dll中的功能函数没有起到作用,而我在vs2010环境下通过同样的调用方式是可以的,但是Qt调用的时候,只有ActiveX包含的函数起作用,比如创建文件等,但是dll中加入创建文件的代码就不起作用,请路过的大神帮我看看,小弟感激不尽。
C#可正常工作
//根据classId获取ActiveX类
Type type = Type.GetTypeFromCLSID(new Guid("23ED3667-1C8D-41F4-A56C-93998A0B6BE3"));
//创建类的实例,第二个参数是object数组,就是你的构造函数里面的参数
//null即为无参构造方法,也可以这么写
//object obj = Activator.CreateInstance(type);
object obj = Activator.CreateInstance(type, null);
//获取实例的指定方法,根据方法名,还有其他重载,也可以根据参数找
MethodInfo mi = type.GetMethod("analyze");
// 调用方法,返回值是object,我的方法返回void,所以不写
mi.Invoke(obj, null);
//Qt只能执行ActiveX中的函数,不能追踪到dll中的功能函数
flash->setControl(QString::fromUtf8("{23ED3667-1C8D-41F4-A56C-93998A0B6BE3}"));
qDebug()<<"test :"<<flash->dynamicCall("analyze()");
请大神帮忙!
加一些日志,可能再qt情况下,activex的dll有没有加载成功