在exe工程中,动态加载一个dll。exe中有个A类,派生自X类,X是abstract类在dll工程中也加入了X类,然后实现一个dll的初始化函数,参数就是X的对象动态加载dll,在exe工程中调用这个初始化函数,并传入A类的指针现在的错误是:An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dllAdditional information: 类型 A 的对象无法转换为类型 X出错的位置是调用初始化函数的位置:init.Invoke(obj, args); // 其中args就是A对象
==============================================================================
下面是我要问的问题:1、我的实现方法从语法上是否有问题,是否可行?
2、为什么会出现上述错误?
3、如果方法不可行,有没有更好的方式解决对象在模块间传递的问题?==============================================================================有什么不懂的地方请回帖提出。在线等,先谢过~
==============================================================================
下面是我要问的问题:1、我的实现方法从语法上是否有问题,是否可行?
2、为什么会出现上述错误?
3、如果方法不可行,有没有更好的方式解决对象在模块间传递的问题?==============================================================================有什么不懂的地方请回帖提出。在线等,先谢过~
你现在“exe中有个A类,派生自X类,X是abstract类”,“dll工程中也加入了X类”也就是说,你有两个X类,一个在exe中,一个在dll中,这样是会出问题的请把公用的东西独立出来,单独放到一个程序集中,供其他项目引用
这两个X类对于JTL来说,是两个完全不相干的类综上所述,得出答案如下:
1 语法无问题,要不然也不给你编译过
2 两个完全不相干的类当然无法进行隐式转换
3 按agentianle给出的方法似乎已经可以解决问题了
http://topic.csdn.net/u/20090324/16/a8aaa8fe-2832-4c21-b00a-c8ee41e75ee3.html