« 2007年2月 | トップページ | 2007年5月 »

[BCB] FileCtrl.hppでリンクエラー

#include<FileCtrl.hpp> して

MinimizeNameやSelectDirectoryなどを使おうとすると、コンパイル時にリンクエラー、未解決の外部参照となる場合があります。原因はよくわかりませんが、vclx.lib(BDS2006の場合、それ以外の場合はお尻に数字がつく)というファイルをインストールしたディレクトリ以下から探してきて、プロジェクトに追加してやればコンパイルが通るようになります。

[BCB] LOGFONTとTFontの変換

LOGFONT lf;

//TFont -> LOGFONT
GetObject(Canvas->Font->Handle, sizeof(LOGFONT), &lf);

//LOGFONT -> TFont
Canvas->Font->Handle = CreateFontIndirect(&lf);

[BCB] ListViewで選択中の行までスクロール

if (ListView1->Selected!=NULL)
  ListView1->Selected->MakeVisible(true);

[BCB] ウインドウを列挙する

//-----------------------------------------------------
void __fastcall ListupWindows(void)
{
  //ウインドウの列挙
   EnumWindows((WNDENUMPROC)EnumWindowsProc , NULL);
}

//------------------------------------------------------
BOOL CALLBACK EnumWindowsProc(HWND hwnd , LPARAM lp)
{
  if ((GetWindow(hwnd,GW_OWNER)==NULL) && (IsWindowVisible(hwnd))) {
    char buf[1024];
    ZeroMemory(buf,1024);
    GetWindowModuleFileName(hwnd,buf,1024);
    /*
    GetWindowText(hwnd , buf , 1024);
    GetClassName(hwnd , buf , 1024);
    DWORD processID=0;
    GetWindowThreadProcessId(hwnd, &processID);
    */
   
    Form1->ListBox1->Items->Add(Str);
  } 
  return TRUE;
}

[BCB] プロセスを列挙する

#include <Tlhelp32.h>

void EnumProcesses()
{
  //プロセスの列挙   
  HANDLE hSnapShot;
   PROCESSENTRY32 procEntry;

   //システムのスナップショットを取得
   hSnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
   procEntry.dwSize =sizeof(procEntry);
   if (Process32First (hSnapShot,&procEntry)!=NULL) {
    do {
       ListBox1->Items->Add(procEntry.szExeFile);
     } while (Process32Next (hSnapShot,&procEntry));
   }
   CloseHandle(hSnapShot);
}

« 2007年2月 | トップページ | 2007年5月 »