SAP Netweaver。 C ++错误:无法读取内存

时间:2019-07-19 09:31:26

标签: c++ netweaver

对于我的项目,我需要测试路由器字符串是否已使用SAP Netweaver 7.0成功连接到SAP服务器。我已在Visual Studio 2017中创建了控制台应用程序。已给出了连接参数。但是应用程序以错误结尾:无法读取内存

#include <stdlib.h>
#include <stdio.h>
#include "stdafx.h"
#include "include/sapnwrfc.h"


void errorHandling(RFC_RC rc,  RFC_ERROR_INFO*errorInfo, RFC_CONNECTION_HANDLE connection) {

    printfU(cU("%s:  %s\n"), errorInfo->key, errorInfo->message);
    /* It's better to close the TCP/IP connection cleanly, than tojust let the backend get a "Connection reset by peer" error...*/
    if (connection != NULL)  RfcCloseConnection(connection, errorInfo);
    exit(1);
}


int mainU(int argc, SAP_UC** argv)
{
    RFC_RC  rc = RFC_OK;   
    RFC_CONNECTION_PARAMETER  loginParams[6];  
    RFC_ERROR_INFO  errorInfo;   
    RFC_CONNECTION_HANDLE  connection;

    //  -----------------------------------------------
    //  OPEN CONNECTION
    //  -----------------------------------------------
    //  Create logon parameter list
    loginParams[0].name = cU("gwhost");
    loginParams[0].value = cU("80.**.***.**");
    loginParams[1].name = cU("sysnr");
    loginParams[1].value = cU("00");
    loginParams[2].name = cU("client");
    loginParams[2].value = cU("800");
    loginParams[3].name = cU("user");
    loginParams[3].value = cU("jsar12");
    loginParams[4].name = cU("lang");
    loginParams[4].value = cU("EN");
    loginParams[5].name = cU("****");
    loginParams[5].value = cU("Abc");

    //  Open connection
    connection = RfcOpenConnection(loginParams, 6, &errorInfo);
    if (connection == NULL) errorHandling(rc, &errorInfo, NULL);

    return 0;
}

预期结果:连接到SAP路由器

1 个答案:

答案 0 :(得分:0)

解决上述问题的方法是在Visual Studio的设置中。经过大量搜索并尝试了一些技巧之后,我在以下链接中找到了解决方案: https://answers.sap.com/questions/12367200/netweaver-rfc-connector-error-logon.html

摘要:

On Linux and Windows, certain minimum releases of the C runtime are required to execute the programs. See SAP Notes 1021236 (for Linux) and 684106 (for Windows). The compiler and linker options needed to compile programs using the SAP NetWeaver RFC SDK are listed in SAP Note 1056696.

In addition, for Windows users using Microsoft Visual Studio, this is a description of how to set the Visual Studio project properties:

General section: Make sure the CharacterSet field is set to “Use Unicode Character Set.”

Debugging section: Under Environment, add something like Path=%Path%;nwrfcsdk\lib.

C/C++ section:

General: Add the nwrfcsdk\include directory under Additional Include Directories.

Preprocessor: Add the two preprocessor definitions SAPonNT and SAPwithUNICODE.

Code Generation: Choose “Multi-threaded DLL (/MD)” as the Runtime Library; selecting “Multi-threaded Debug DLL (/MDd)” may lead to strange problems.

Linker section:

General: Add the nwrfcsdk\lib directory under Additional Library Directories.

Input: Under Additional Dependencies, add libsapucum.lib, sapnwrfc.lib, and sapdecfICUlib.lib