|
|
||||
Tips > |
|||||
static lib で API 関数を使う(PathCompactPathEx) |
更新 : 2010/07/02 |
||||
|
|
||
解説: ヘッダファイルと LIB ファイルがある場合の Win32API 関数の利用方法を書きます。 以前、DLL 内の API 関数を呼び出すため、LoadLibrary 関数と GetProcAddress 関数を使った Tips を載せました。このとき呼び出した PathCompactPathEx(「パスを文字数指定で省略」する)関数を実行してみます。 ちょっと寄り道: PathCompactPathEx 関数は以下のように定義されています。 BOOL PathCompactPathEx( LPTSTR Dest, // 変換後のパス LPCTSTR Src, // 元のパス UINT Max, // 何文字に縮めるか指定 DWORD Flags // パスの区切り文字 ); 使用例: アプリケーションを起動して、Button1 をクリックしてください。 省略されたパスが表示されます。 コンポーネントは、 Button を適当に配置しておしまいです。 コーディングでは、まず LIB ファイルをプロジェクトに追加して、ヘッダファイル "shlwapi.h" をインクルードします。 Button1 の OnClick イベントで、変数 src に任意のパスを代入します。PathCompactPathEx 関数に必要な引数を渡します。 省略されたパスがメッセージとして表示されます。 第三引数の指定を変えて、省略パスがどのように変わるか確認しておいてください。 LIB ファイルと DLL の使い方が分かると、コーディングの幅が広がります。 他に気になるファイルがあれば Win32API を抽出して、いろいろ試してみるとよいでしょう。 // "Project1.cpp" USELIB("shlwapi.lib"); // "Unit1.cpp" #include <shlwapi.h //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString src = "c:\\windows\\system32\\user32.dll"; char dest[128]; // パスを文字数指定で省略 PathCompactPathEx(dest, src.c_str(), 27, '\\'); ShowMessage(dest); } //------------------------------------------------------------------- |