1
我需要使用delphi調用pcshll32.dll的hllapi函數。它適用於ibm的個人通信。我如何將代碼更改爲delphi?謝謝 !!!調用dll - 使用delphi的pcshll32.dll
的EHLLAPI入口點(HLLAPI)總是調用下列四個參數:
- EHLLAPI功能編號(輸入)
- 數據緩衝器(輸入/輸出)
- 緩衝區長度(輸入/輸出)
- 演示空間位置(輸入);返回代碼(輸出)
原型爲IBM標準EHLLAPI是: [長HLLAPI(LPWORD,LPSTR,LPWORD,LPWORD); IBM Enhanced EHLLAPI的原型是: [long hllapi(LPINT,LPSTR,LPINT,LPINT);
每個參數都通過引用而不是按值傳遞。因此函數調用的每個參數必須是一個指向值的指針,而不是值本身。例如,下面是調用EHLLAPI查詢會話狀態的功能的一個正確的示例:
#include "hapi_c.h"
struct HLDQuerySessionStatus QueryData;
int Func, Len, Rc;
long Rc;
memset(QueryData, 0, sizeof(QueryData)); // Init buffer
QueryData.qsst_shortname = ©A©; // Session to query
Func = HA_QUERY_SESSION_STATUS; // Function number
Len = sizeof(QueryData); // Len of buffer
Rc = 0; // Unused on input
hllapi(&Func, (char *)&QueryData, &Len, &Rc); // Call EHLLAPI
if (Rc != 0) { // Check return code
// ...Error handling
}
所有的HLLAPI調用參數指針和EHLLAPI函數的返回碼在第4的值返回參數,而不是函數的值。