使用DllImport调用X86DLL,将运行平台Any CPU改X86后报错
c#吧
全部回复
仅看楼主
level 2
红色进化 楼主
求大佬分享解决方法[在笼子里]
log日志:
2023-06-28 17:03:24,158 [1] ERROR 520IIPro.Program - “IDAL.DALFactory”的类型初始值设定项引发异常。
System.TypeInitializationException: “IDAL.DALFactory”的类型初始值设定项引发异常。 ---> System.ArgumentNullException: 值不能为 null。
参数名: type
在 System.Activator.CreateInstance(Type type, Boolean nonPublic)
在 System.Activator.CreateInstance(Type type)
在 IDAL.DALFactory..cctor() 位置 D:\IDAL\DALFactory.cs:行号 23
--- 内部异常堆栈跟踪的结尾 ---
在 IDAL.DALFactory.get_Instance()
在 BLL.TestBlankBLL..ctor() 位置 D:\BLL\TestBlankBLL.cs:行号 76
在 BLL.TestBlankBLL.get_Instance() 位置 D:\BLL\TestBlankBLL.cs:行号 41
在 OIL520IIPro.FrmMain..ctor(String title) 位置 D:520IIPro\FrmMain.cs:行号 39
在 OIL520IIPro.Program.Main() 位置 D:520IIPro\Program.cs:行号 33
2023年06月28日 09点06分 1
level 8
跟一下你获取的typename, 看看他是不是你预期的值, 应该是GetType那里返回空了
2023年06月29日 09点06分 2
是的,发新帖了,求大佬指点
2023年06月29日 09点06分
level 11
已经提示的很清楚了,构造函数里面报错了,还有使用c#写的dll不需要dllimport
2023年06月29日 11点06分 3
delphi写的
2023年06月30日 01点06分
level 11
你最好确认你那个typename再你的程序里面是有的。况且还加载了。
2023年06月29日 11点06分 4
有值的在运行平台AnyCPU就可以获取到传入DAL.DALFactory_SQLite,DAL接收DAL.DALFactory_SQLite但换X86就Type t = Type.GetType(typename);的t是null
2023年06月30日 01点06分
level 2
红色进化 楼主
加载的目标是继承关系DAL.DALFactory_SQLite
2023年06月30日 01点06分 5
@红色进化 哎哟,你这个跟dllimport没有半毛钱关系,很好调啊,你看看你的typename是什么啊 有没有想过换平台配置后,生成文件夹会变的,你的setting文件没有拷过来,不行就把所有type打印出来看,不要这种问题都卡几天
2023年06月30日 01点06分
@路过者天蝎96 大佬[委屈]自罚三杯问题已解决,DAL.dll没跟着复制进去
2023年06月30日 09点06分
1