点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
ABAP语言中的DLL调用并不普通但很容易使用。Yuri Popov 编写了一个名为 DynamicWrapperX 的模块。它是一个 ActiveX 组件,允许通过 COM 调用您想要的 DLL 中的每个函数。一个很棒的模块,您可以在此处找到该模块。
之前需要使用事务代码SOLE 在SAP 系统中注册OLE 应用程序DynamicWrapperX。输入:
• OLE 应用程序:DynamicWrapperX
• CLSID:{89565275-A714-4a43-912E-978B935EDCCC}
• CLSID 类型库:{89565275-A714-4a43-912E-978B935EDCCC}
• OLE 对象名称:DynamicWrapperX
• 语言:EN
• 文本:组件允许调用由 DLL 导出的函数
并且还需要在客户端系统上注册 DynamicWrapperX,使用 regsvr32.exe dynwrapx.dll。
看看下面的例子,使用来自 USER32.DLL 的 Windows 函数是多么容易:
错误呈现宏“代码”:为参数“com.atlassian.confluence.ext.code.render.InvalidValueException”指定的值无效
INCLUDE OLE2INCL. "-Constants------------------------------ DATA IDYes TYPE i VALUE 6. DATA IDNo TYPE i VALUE 7. "-Variables------------------------------ DATA Win32 TYPE OLE2_OBJECT. DATA ret TYPE i. CREATE OBJECT Win32 'DynamicWrapperX'. CALL METHOD OF Win32 'Register' EXPORTING #1 = 'user32.dll' #2 = 'MessageBoxW' #3 = 'i=hwwu' #4 = 'r=l'. CALL METHOD OF Win32 'MessageBoxW' = ret EXPORTING #1 = 0 #2 = 'Hello World' #3 = 'Test' #4 = 4. IF ret = IDYes. WRITE 'Ja'. ELSEIF ret = IDNo. WRITE 'Nein'. ELSE. WRITE '?'. ENDIF. FREE OBJECT Win32.
重要提示:此方法仅适用于前台作业和在线进程,不适用于后台作业和批处理进程。