首页 / 知识
关于c#:如何在运行时后期绑定32位/64位库
2023-04-12 21:26:00

How to late bind 32bit/64 bit libs at runtime我遇到了一个与此处描述的问题相似但略有不同的问题(加载程序集及其依赖项)。 我有一个用于 3D 渲染的 C DLL,这是我们卖给客户的。对于 .NET 用户,我们将有一个 CLR package器。 C DLL 可以在 32 位和 64 位版本中构建,但我认为这意味着我们需要有两个 CLR package器,因为 CLR 绑定到特定的 DLL? 假设现在我们的客户有一个可以是 32 位或 64 位的 .NET 应用程序,并且它是一个纯 .NET 应用程序,它让 CLR 从一组程序集中解决它。问题是应用程序代码如何在运行时动态选择我们的 32 位和 64 位 CLR/DLL 组合? 更具体地说,上述问题的建议答案是否也适用于此处(即创建 ResolveEvent 处理程序)? 我终于找到了一个可行的答案。 同时编译 32 大约一年前我能够做到这一点,但我不再记得所有细节了。基本上,您可以使用 IntPtr.Size 来确定要加载哪个 DLL,然后通过 p/Invoke 执行实际的 LoadLibrary。此时,您已经在内存中获得了模块,并且您应该能够从其中 p/Invoke 函数——不应再次重新加载相同的模块名称。 不过,我认为,在我的应用程序中,我实际上让 C DLL 将自己注册为 COM 服务器,然后通过生成的 .NET package器访问它的功能——所以我不知道我是否曾经测试过 p/直接调用。 不久前我遇到了类似的情况。我使用的工具包在 64 位环境中表现不佳,我无法找到动态强制程序集绑定为 32 位的方法。 可以强制您的程序集在 32 位模式下工作,但这需要修补 CLR 标头(在框架中有一个工具可以做到这一点),如果您的程序集是强命名的,这将不起作用 恐怕您需要为 32 位和 64 位平台构建和发布两组二进制文件。 |
最新内容
相关内容
python的调用绑定方法和非绑定方法
python的调用绑定方法和非绑定方法,代码,方法,实例,第一,培训,时计,奇数,偶数,参数,定义,在Python中,如果用实例去调用方法,这种限制就被称为Py用于业余项目的优秀 Python 库
用于业余项目的优秀 Python 库,数据,工具,项目,信息,培训,系统,地图,下来,工作,管理,1.在数据库中即时保存数据:Dataset当我们想要在不知道最python 用于序列操作的常用内置函
python 用于序列操作的常用内置函数,较大,培训,列表,函数,元素,对象,参数,操作,字符串,序列,len(列表):返回列表中的元素个数,同样适用于元组、怎么计算python程序运行时间
怎么计算python程序运行时间,时间,培训,程序,方式,脚本,下面,以上,两个,结束,不是,python脚本使用统计时间的方式是time.clock(),而这种方式统Python怎么运行shell脚本
Python怎么运行shell脚本,培训,命令,文件,方法,脚本,文件夹,对象,建议,结果,内容,Python作为一门脚本语言,有时候需要与shell命令交互式使用,在Mac终端下直接运行Python的.py程序
Mac终端下直接运行Python的.py程序,位置,培训,终端,文件,注释,权限,继续,程序,空格,文件名,1.在文件中添加注释首先在你所要运行的python文件python代码运行需要编译吗
python代码运行需要编译吗,代码,培训,做好,体系,平台,语言,机器码,目标,厨师,下次,有人在讨论Python代码是编译执行还是解释执行?这个问题还如何获取当前运行python文件路径
如何获取当前运行python文件路径,名字,培训,路径,脚本,绝对路径,文件,指令,模块,定义,所在,获取当前执行主脚本方法:sys.argv[0]和_file_(1)sypython如何在linux下运行python
python如何在linux下运行python,培训,绝对路径,文件,程序,这个地方,头部,文本,上面,以上,时候,Linux下运行python有两种方式:1、直接使用pythopython怎么在cmd运行文件夹
python怎么在cmd运行文件夹,培训,路径,文件夹,文件,以上,程序,方法,更多,内容,python是一门高级测面向对象的程序设计语言。运行Python,可在python cmd中怎么运行python文件
python cmd中怎么运行python文件,培训,文件,路径,以上,程序,方法,更多,内容,运行Python,可在交互模式下运行,或者命令行中。命令行中运行的是pythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不