簡體   English   中英

SAP Netweaver。 C++ 錯誤:無法讀取內存

[英]SAP Netweaver. C++ Error:The memory cannot be read

對於我的項目,我需要使用 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 路由器

上述問題的解決方案是在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM