ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


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);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.