Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2010 / 5月

MSB6006

ビルドで MSB6006 のエラーが発生するようになってしまった.

—— ビルド開始: プロジェクト: XxxXxXxx, 構成: Release x64 ——
XxxXxXxx.vcxproj -> \XxxXXDocumentsXxxxxxxXXXXXxxXxXxxx64_R10XxxXxXxx.exe
—— ビルド開始: プロジェクト: XxxXxXxx, 構成: Release Win32 ——
XxxXxXxx.vcxproj -> \XxxXXDocumentsXxxxxxxXXXXXxxXxXxxx86_R10XxxXxXxx.exe
C:Program Files (x86)MSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(562,5): error MSB6006: "mt.exe" はコード 31 を伴って終了しました。
========== ビルド: 2 正常終了、1 失敗、0 更新不要、0 スキップ ==========

リビルドしても効果なし.


2010/05/27 追記
ファイルサーバも含め再起動をかけたら正しくビルドできるようになった.



  にほんブログ村 IT技術ブログへ


Visual Style を無効に

ダイアログ上のボタンなどの Visual Style を無効に
BOOL DisableVisualStyle (CWnd* wnd)

//**************************************************************************************************
// ファイル名 :HelpVSty.hxx
// 機能名  :ビジュアルスタイルヘルパ  Visual Style 関数の簡略化
// 作成者  :
// 作成年月日 :’09/07/02
// 変更履歴 :’09/07/02
//**************************************************************************************************
#ifndef _INC_H_HELP_THEME_API
#define _INC_H_HELP_THEME_API
#include <AfxWin.h>

//*******************************************************************************
// 関数名 :SetWindowTheme
// 作成日 :’09/07/02
//*******************************************************************************
inline HRESULT Hlp_SetWindowTheme (HWND hwnd,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList)
{
 HMODULE hDll = ::LoadLibrary(_T("UxTheme.dll")) ;
 if (hDll == NULL)    { return !S_OK ;  }
 HRESULT (WINAPI *pfSetWindowTheme)(HWND,LPCWSTR,LPCWSTR) = NULL ;
 (FARPROC&)pfSetWindowTheme = ::GetProcAddress(hDll,("SetWindowTheme")) ;
 HRESULT res = !S_OK ;
 if (pfSetWindowTheme != NULL) {
  res = pfSetWindowTheme(hwnd,pszSubAppName,pszSubIdList) ;
  }
 ::FreeLibrary(hDll) ;
 return res ;
 }

//*******************************************************************************
// 関数名 :Visual Style を OFF に
// 作成日 :’09/07/02
//*******************************************************************************
inline BOOL DisableVisualStyle (CWnd* wnd)
{
 if (wnd == NULL)     { return FALSE ; }
 if (wnd->m_hWnd == NULL)   { return FALSE ; }
#ifdef __ATLBASE_H__
 { // コモンコントロールのバージョンをチェック
  DWORD ccMajor = 0 ;
  DWORD ccMinor = 0 ;
  AtlGetCommCtrlVersion(&ccMajor,&ccMinor) ;
  if (ccMajor < 6)    { return TRUE ; }
  }
#endif
 HRESULT res = !S_OK ;
   res = ::Hlp_SetWindowTheme(wnd->GetSafeHwnd(), L" ", L" ") ;
 return (res == S_OK) ;
 }
#endif

HelpVSty.hxx



  にほんブログ村 IT技術ブログへ

  • Categories:

CStatic をはみ出さない様に (クリッピング)

ダイアログ上の CStatic をはみ出さない様に描画する

CDC::IntersectClipRect 

   ...
   CClientDC dc(&m_Image) ;
   CRect  rect ;
   m_Image.GetClientRect(rect) ;
   dc.IntersectClipRect(rect) ;
   ...


  にほんブログ村 IT技術ブログへ

  • Categories:

VC 6 プロファイラを有効に

VC 6 で「プロファイルを行う」を有効にする設定
「プロジェクトの設定」-「リンク」タブ-カテゴリ「一般」のダイアログで,「Alt」+「E」
または,プロジェクトのオプションに "/Profile" を追加.

特定のモジュールに限定
「プロファイル」-「詳細設定」で
/EXCALL /INC ComPro01.obj /inc ComUse02.obj



  にほんブログ村 IT技術ブログへ

  • Categories:

コンボボックスの高さ指定

//*******************************************************************************
// 関数名 :コンボボックスの高さを,親ウィンドウの下に合わせる
// 作成日 :’09/07/01
//*******************************************************************************
#ifndef CBM_FIRST       // C:Program Files (x86)Microsoft SDKsWindowsv7.0AIncludeCommCtrl.h
#define CBM_FIRST 0x1700  // Combobox control messages
#define CB_SETMINVISIBLE (CBM_FIRST + 1)
#define CB_GETMINVISIBLE (CBM_FIRST + 2)
#define CB_SETCUEBANNER (CBM_FIRST + 3)
#define CB_GETCUEBANNER (CBM_FIRST + 4)
#endif

inline
BOOL FitDropHeight (CComboBox* ctrl,CWnd* parent)
{
  if (ctrl == NULL)               { return FALSE ; }
  if (ctrl->m_hWnd == NULL) { return FALSE ; }
  CRect tRect ;
  ctrl->GetWindowRect (&tRect) ;
  parent->ScreenToClient(&tRect) ;
  CRect pRect ;
  parent->GetClientRect(&pRect) ;
  tRect.bottom= pRect.bottom ;
  ctrl->MoveWindow(&tRect) ;
     // ここから上は,Visual Style が無効な exe の時に動作する
  { // ここから下は,Visual Style が有効な場合に必要 MoveWindow では変更されない?
    int minV = tRect.Height()/ctrl->GetItemHeight(0) ;
    if (minV >= 3) { minV-= 2 ; }
    if (minV <= 0) { minV = 1 ; }
    ctrl->SendMessage(CB_SETMINVISIBLE,minV) ;
    }
  return TRUE ;
  }

CB_SETCUEBANNER
CComboBox::SetCueBanner

Windows Vista コントロールの拡張


Windows Vista コモン コントロールの作成要件


サポートされなくなった ANSI API



  にほんブログ村 IT技術ブログへ

  • Categories:

DDX/DDV の順番を…

順番をいじってしまうと,入力中の最大チェックが働かなかったり,値の修正ができない様になってしまう.

 DDX_Text     (pDX, IDC_TEXT_1 , m_Text1);
 DDV_MaxChars (pDX,    m_TEXT1 , 25);
 DDX_Text     (pDX, IDC_TEXT_2 , m_Text2);
 DDV_MaxChars (pDX,    m_TEXT2 , 25);


  にほんブログ村 IT技術ブログへ

  • Categories:

x86 プロジェクトの x64 へのコピー

VC 6 以前から使用しているプロジェクトを,64 ビット用にコピーしてビルドすると以下のエラーになることがある.

1>—— ビルド開始: プロジェクト: Project, 構成: Release x64 ——
1>.x64_R10ProjectA.obj : fatal error LNK1112: モジュールのコンピューターの種類 ‘x64’ は対象コンピューターの種類 ‘X86’ と競合しています。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

「プロジェクトのプロパティページ」の「構成プロパティ」-「リンカ」-「コマンドライン」の「追加オプション」にある "/MACHINE:I386" を削除する.



  にほんブログ村 IT技術ブログへ

  • Categories:

MFC ファイルハンドラの登録

ビルド時に以下のエラーとなる.


—— ビルド開始: プロジェクト: ???Handlers, 構成: Debug Win32 ——
???Handlers.vcxproj -> C:\Users\???\Documents\Visual Studio 2010\Projects\???\Debug\???\Handlers.dll
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(732,5): warning MSB3075: コマンド “regsvr32 /s “C:\Users\???\Documents\Visual Studio 2010\Projects\???\Debug\???\Handlers.dll”” はコード 5 で終了しました。このコマンドを実行するための十分な権限があるか確認してください。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(744,5): error MSB8011: 出力の登録に失敗しました。ユーザーごとのリダイレクトを有効にするか、引き上げられたアクセス許可を使用して、コマンド プロンプトからコンポーネントを登録してください。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========


VS 2010 を「管理者として実行」して起動する.
または,「管理者として実行」した「コマンドプロンプト」での「RegSvr32」.
 
通常の「コマンドプロンプト」では以下のエラーとなる.
[Window Title]
RegSvr32
[Content]
モジュール “C:\Users\???\Documents\Visual Studio 2010\Projects\???\Debug\???Handlers.dll” は読み込まれましたが、DllRegisterServer への呼び出しはエラー コード 0x80070005 により失敗しました。
この問題の詳細については、エラー コードを検索語として入力してオンラインで検索してください。



  にほんブログ村 IT技術ブログへ


キーのオープン エラー

レジストリエディタで削除できないキーができてしまった.

[Window Title]
キーのオープン エラー
[Content]
・・・・….・・・・・・・・・&#29;笶,cF &#30;潺&#21;&#3;&#24;ィ&#22;&#3;$<1S を開けません。
エラーによりこのキーを開けません。
詳細: 指定されたファイルが見つかりません。
[OK]

原因は,AfxGetApp()->m_pszProfileName をいじっていた関係で,
OpenMP を利用した時のバグでごみが設定された.

対応には,RegDelNull.exe を利用.
http://technet.microsoft.com/ja-jp/sysinternals/default.aspx
http://technet.microsoft.com/ja-jp/sysinternals/bb545027.aspx
http://technet.microsoft.com/ja-jp/sysinternals/bb897448(en-us).aspx

利用方法
削除したいキー名は "HKEY_CURRENT_USER\Software\???\???\_"
環境は,Windows 7

  1. コマンドプロンプトを管理者として実行.
  2. C:\Windows\system32> C:\Users\…\Regdelnull\RegDelNull.exe hkcuSoftware\???\???\_
  3. 削除するか聞いてくるので,必要に応じて y



  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。