首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于OS平台的DllImport

基于OS平台的DllImport
EN

Stack Overflow用户
提问于 2010-06-14 10:35:58
回答 1查看 1.6K关注 0票数 2

我混合了非托管代码(后端)和托管代码(前端),因此,我需要使用互操作技术和DllImport属性从托管代码中调用非托管代码。

现在,我已经针对32位和64位操作系统编译了两个版本的非托管代码;它们分别命名为service32.dllservice64.dll。因此,在我的.Net代码中,我必须为这两个dlls执行一个DllImport

代码语言:javascript
复制
[DllImport(@"service32.dll")]   //for 32 bit OS invocation
public static void SimpleFunction();

[DllImport(@"service64.dll")]   //for 64 bit OS invocation
public static void SimpleFunction();

并根据我的应用程序运行的平台来调用它们。

现在的问题是,对于每个非托管函数,我必须声明两次,一次用于32位操作系统,另一次用于64位操作系统。这是一个重复的工作,每次我更改非托管函数的签名时,我都必须在两个地方修改它。

有没有什么办法可以让我更改DllImport中的参数,以便根据平台自动调用正确的dll?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-14 19:00:41

我不认为DllImport支持这一点,你可以手动调用LoadLibrary等。

但看看Parameterising DllImport for use in a C# application,那里的答案也会适合你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3034733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档