我有一个解决方案两个项目:如何设置引用64位类库的32位winform解决方案?
MyWinForm
- 自定义用户32位的项目控制
MyClassLibrary
- 一个64位的项目,需要64位的数学运算
我由微软“强制”生成32位程序集的用户控件。 See here for reference
我被我的数学模型“强迫”要求64位数学运算。
如果我在MyWinForm
内引用MyClassLibrary
并将其保持为64位程序集,那么我的数学运算就会成功完成;但是,我不能再使用自定义用户控件。当我试图将我的自定义用户控件拖放到设计器表面时,出现以下错误:“未能加载工具箱项目,它将被删除”。
如果我引用内MyWinForm
MyClassLibrary
并保持它作为一个32位的组件,然后我的数学操作失败,出现一个OutOfMemory例外(由于32位最大大小限制)。
如何设置我的解决方案以允许引用自定义用户控件和64位类库以避免这些问题?
我真的很想能够使用工具箱和设计曲面。我有一种预感,我将需要在运行时加载自定义用户控件,以便动态编译器知道如何决定32位或64位。在我看来,这违背了使用Visual IDE的目的。
您不能在32b进程中使用64b库,因为库已加载到进程空间,因此必须是32b – Gusman
是否有解决方法? – sapbucket
好吧,首先不是任何直接的,但是你可以创建两个单独的进程,一个用于32b GUI,另一个用64b数学类并且用tcp/pipes/shared memory进行相互通信,你可以启动32b,启动一个不可见的过程,然后你可以混合的东西。一个提示,堆栈溢出发生,因为没有堆栈,你是否试图在32b进程中增加堆栈大小? – Gusman