SM59:
Распаковал в одну папку NW RFC SDK 32-bit и samples.cab оттуда же.
В качестве рабочей среды у меня MSVS 2010 и Win7x86.
В студии: идём Файл -> Создать проект из существующего кода и указываем распаковыванную папку
Свойства проекта – Выбираем Плафторму Win32
в следующем окне (“Debug configuration settings”) оставляем все поля пустыми.
Свойства для nmake:
1 2 |
cl -DBCDASM -nologo -Od -Ob1 /Zi -fp:strict -Gy -GF -EHs -Z7 -W3 -D_X86_ -DWIN32 -DSAPwithUNICODE -DUNICODE -D_UNICODE -MD -D_AFXDLL -FR -J -RTC1 -D_CRT_NON_CONFORMING_SWPRINTFS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DSAPonNT -c /EHc- /TP nwRFCserver.cpp -I "..\include" link -nologo /NXCOMPAT -STACK:0x800000 ole32.lib rpcrt4.lib oleaut32.lib oledb.lib uuid.lib kernel32.lib advapi32.lib user32.lib gdi32.lib winspool.lib ws2_32.lib Iphlpapi.lib netapi32.lib comdlg32.lib shell32.lib dbghelp.lib version.lib mpr.lib secur32.lib -OPT:REF -LARGEADDRESSAWARE -subsystem:console -out:nwrfcserver.exe nwRFCserver.obj ..\lib\sapnwrfc.lib ..\lib\libsapucum.lib /DEBUG |
1 2 3 4 |
extern void readValue(SAP_UC* buffer, int max){} extern "C" int userSaysYes(void){ return 0; }; extern "C" void printParameter(RFC_PARAMETER_DESC paramDesc, RFC_FUNCTION_HANDLE container){} extern "C" void fillParameter(int* index, RFC_PARAMETER_DESC desc, RFC_FUNCTION_HANDLE container){} |
Параметры в файле
Вместо функций из libsapucum.dll (sapuc.h) можно использовать стандартные w-функции Microsoft (wchar.h). В Windows тип данных “SAP_UC” эквивалентен “wchar_t”. Например, вместо printfU() можно использовать wprintf(), а вместо getcU() – _getws().
Запускаем и нажимаем в SM59 тест соединения:
UPD 2022: проект компилируется в msvs 2022 + win10