GetTickCount64という名前のkernel32.dllライブラリから外部関数を宣言したいと思います。私の知る限り、それはVistaとそれ以降のWindowsバージョンでのみ定義されています。これは私が関数を定義する場合、以下のようにすることを意味します存在するかどうかによって外部関数を宣言する
function GetTickCount64: int64; external kernel32 name 'GetTickCount64';
私は確かにあるため、アプリケーションの起動時に発生したエラーの以前のバージョンのWindows上で自分のアプリケーションを実行することはできません。
この問題を回避する方法はありますか?その関数が存在しないときに関数をインクルードしないようにして、コード内で代替関数を使用したいとしましょう。どうやってするか?助けるコンパイラ指令がありますか? 私は定義がそのような指示に囲まれなければならないと思うし、私はGetTickCount64のfounctionを使用するときはいつも、いくつかの指示を使わなければならないだろうか?
あなたの助けが理解されるであろう。前もって感謝します。
マリウス。
ご回答ありがとうございます。私はそれが私が探していたものだと思う。 私は質問があります。私は次のように条件を変更したい: 割り当てられていない場合(_GetTickCount64) @ _GetTickCount64:= @ GetTickCount; これは間違いありませんか?ご覧のとおり、GetTickCount64が定義されていない場合、代わりに "Windows"モジュールで宣言されているGetTickCount関数を使用しました。私は_GetTickCount64変数にint64を返す関数を割り当てることができることを理解しています。それとも、外部機能だけでなければならないのでしょうか?私はまだstdcallのキーワードを知らない:-(。 –
DWordをInt64に割り当てることはできますが、 "DWordを返す関数へのポインタ"を "Int64を返す関数へのポインタ"に割り当てることはできません。 GetTickCount64のシグネチャとそれにGetTickCountを呼び出します。実際の関数が見つからない場合は、*関数*へのポインタを_GetTickCount64に割り当てます。 –