我们的软件是用C#编写的,需要连接到SAP。由于我们的一些客户使用旧版本的SAP,而其他客户没有SAP PI,因此我们无法通过Web服务进行连接。
我尝试通过SAP NetWeaver远程函数调用库(sapnwrfc.dll)连接到SAP,如下所示:
运行此代码会产生DllNotFoundException: 无法加载DLL'sapnwrfc.dll':此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。 (HRESULT异常:0x800736B1)
运行标准的connect-to-C ++ - 来自C#示例 [DllImport(“user32.dll”,CharSet = CharSet.Unicode)] public static extern int MessageBox(IntPtr hWnd,String text,String caption,uint type); MessageBox(新的IntPtr(0),“Hello World!”,“Hello Dialog”,0); 工作良好。
任何建议如何使这项工作正常(这样我们不需要通过使用JCo编写Java代理来解决此问题)?
如果您缺少某些DLL,您是否使用Dependency Viewer进行了检查?我曾经为rfc库编写了一个托管包装器(至少是它的一部分),我记得我下载的一些rfc库有问题。一个版本根本不起作用,我没有弄清楚出了什么问题。另一个版本(较旧)工作得很好。
但是我确实遇到了unicode库的问题(一些随机出现的内存访问问题)所以我不得不切换到非unicode版本......
如果我不得不再做一次这样的事情,我会非常认真地考虑买一个连接器:http://www.theobald-software.com/en/products/erpconnect.htm
我不能说它是否有任何好处,但它们似乎已经存在了一段时间了。
为什么不简单地使用SAP的“.NET Connector”(NCo3)?有关下载页面和文档的链接,请参阅SAP说明856863。