Hen*_*den 5 c# sap dllnotfoundexception saprfc
我们的软件是用 C# 编写的,需要连接到 SAP。由于我们的一些客户使用旧版本的 SAP,而其他客户没有 SAP PI,因此我们无法通过 Web 服务进行连接。
我尝试通过 SAP NetWeaver 远程函数调用库 (sapnwrfc.dll) 连接到 SAP,如下所示:
运行此代码会出现 DllNotFoundException:
Unable to load DLL 'sapnwrfc.dll': This application has failed to start because the application configuration is不正确。重新安装应用程序可能会解决此问题。(来自 HRESULT 的异常:0x800736B1)
运行标准的 connect-to-C++-from-C# 示例
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);
工作正常。
有什么建议可以使这项工作正常进行(这样我们就不需要通过使用 JCo 编写 Java 代理来解决这个问题)?
您是否使用依赖关系查看器检查过是否缺少某些 DLL?我曾经为 rfc 库(至少是其中的一部分)编写过一个托管包装器,我记得我下载的一些 rfc 库存在问题。有一个版本根本不起作用,我也不知道出了什么问题。另一个版本(旧版本)工作得很好。
然而,我确实遇到了 unicode 库的问题(一些随机出现的内存访问问题),所以我不得不切换到非 unicode 版本......
如果我必须再次做这样的事情,我会非常认真地考虑购买连接器: http://www.theobald-software.com/en/products/erpconnect.htm
我不能说这是否有什么好处,但它们似乎已经存在了一段时间了。