Sta*_*wer 7 .net c++ 32bit-64bit
我必须使用ASP.NET站点的C++ DLL文件.该站点将托管在32位和64位环境中.
我有一个32位和64位版本的非托管DLL文件.如何根据当前服务器体系结构从正确的方法导入方法?
就像有人发布的那样,这可以作为部署问题来处理.我担心的是:使用此DLL文件的Web应用程序非常庞大,而且我们没有部署文档.没有人会记得部署正确的DLL文件,所以我试图从解决方案中删除人为因素:)
最简单的方法是在两个不同的目录中为两个本机库提供相同的文件名,然后根据位数调整应用程序DLL搜索路径.
http://www.pinvoke.net/default.aspx/kernel32.setdlldirectory
要让编译器/框架完成您需要的大部分工作
根据平台列出函数的不同实现,如果需要同时安装,请包括不同的 dll 名称。
#if __WIN32
public delegate int Move(int target);
[DllImport("my.dll", SetLastError = true, CharSet = CharSet.Auto)]
#elif __X64
public delegate int Move(int target);
[DllImport("my64.dll", SetLastError = true, CharSet = CharSet.Auto)]
#endif
Run Code Online (Sandbox Code Playgroud)
否则,您可以使用 loadlib 并自行管理编组。
| 归档时间: |
|
| 查看次数: |
1018 次 |
| 最近记录: |