Delphi を使用して、pcshll32.dll の hllapi 関数を呼び出す必要があります。これは、IBM のパーソナル コミュニケーションで動作します。次のコードを delphi に変更するにはどうすればよいですか? ありがとう !!!
EHLLAPI エントリー・ポイント (hllapi) は、常に次の 4 つのパラメーターで呼び出されます。
- EHLLAPI 関数番号 (入力)
- データ バッファー (入力/出力)
- バッファー長 (入力/出力)
- 表示スペース位置 (入力); 戻りコード (出力)
IBM 標準 EHLLAPI のプロトタイプは次のとおりです。 [long hllapi (LPWORD, LPSTR, LPWORD, LPWORD); IBM Enhanced EHLLAPI のプロトタイプは次のとおりです。 [long hllapi (LPINT, LPSTR, LPINT, LPINT);
各パラメーターは、値ではなく参照によって渡されます。したがって、関数呼び出しの各パラメーターは、値自体ではなく、値へのポインターである必要があります。たとえば、以下は EHLLAPI Query Session Status 関数を呼び出す正しい例です。
#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 番目のパラメーターの値で返されます。