Visual C++ リファレンス

MFCアプリケーション用ランタイムについて

装飾名の確認 MSDN2 MSDN

undname.exe を使用すると、装飾名を装飾されていない形式に変換できます。次に例を示します。

C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"

Base64エンコード・デコード

ウィンドウの最大化

http

stdole.dll

インストーラからインストール

  • .NET Framework 2.0 SDK をインストールすると一緒にインストールされる。

ファイルを手でコピー

DLL 読み込み失敗

ASP.NET

UTF-8 の .aspx が文字化けする

以下のどちらかの対策を行う必要がある。

  • web.config ファイルにglobalization 要素を追加する。

    <configuration>
    	<system.web>
    		<globalization fileEncoding="utf-8" />
    	</system.web>
    </configuration>
  • UTF-8 ファイルにByte Order Mark (BOM) をつける。

リソースファイルがコンパイルできない

現象

  • ビルド時にリソースファイルのコンパイルでエラーになる。
    xxx.rc(nn): error RC2135: file not found: xxx
    xxx.rc(nn): error RC2164: unexpected value in xxx

原因

対処

  • ファイルを UTF-16LE で保存する。

VS2010 で「VC++ ディレクトリ」設定が無い

VS2010 上で VS2008 の設定が適用される

現象

  • VS2010上でVS2010の設定ではなくVS2008の設定が適用されてしまう。
    • $(IncludePath) が「Microsoft Visual Studio 10.0/VC/Include」ではなく「Microsoft Visual Studio 9.0/VC/Include」になる。

原因

  • プロジェクトのプロパティで、「全般 - プラットフォームツールセット」が「v90」になっている。

対策

  • 「プラットフォームツールセット」を「v100」に変更する。

固定長配列の要素数を得る

  • _countof マクロを使用する。
    すべてを展開すべてを収束
      1
      2
      3
      4
      5
    
     
     
     
     
     
    
    #include <stdlib.h>
     
    long arr[] = { 1, 2, 3, };
    int arr_length = _countof(arr);    // 配列の要素数
    int arr_size = sizeof(arr);        // 配列全体のバイト数
    
  • wchar_t[] に適用すると、末尾の '\0' 込みの長さが得られる。

型別のバイト数

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 
-
|
|
|
|
|
|
|
|
|
|
|
|
|
!
int main()
{
    printf("char\t%zd\n", sizeof(char));
    printf("short\t%zd\n", sizeof(short));
    printf("int\t%zd\n", sizeof(int));
    printf("long\t%zd\n", sizeof(long));
    printf("float\t%zd\n", sizeof(float));
    printf("double\t%zd\n", sizeof(double));
    printf("long long\t%zd\n", sizeof(long long));
    printf("long double\t%zd\n", sizeof(long double));
    printf("wchar_t\t%zd\n", sizeof(wchar_t));
    printf("size_t\t%zd\n", sizeof(size_t));
    printf("char*\t%zd\n", sizeof(char*));
    printf("wchar_t*\t%zd\n", sizeof(wchar_t*));
    return 0;
}

実行結果

VS2015/x86VS2015/x64
char11
short22
int44
long44
float44
double88
long long88
long double88
wchar_t22
size_t48
char*48
wchar_t*48
  • VS2015: Visual Studio 2015 (v140)

Visual Studio バージョン

名称バージョン
Visual Studio 2017v150
Visual Studio 2015v140
Visual Studio 2013v120
Visual Studio 2012v110
Visual Studio 2010v100
Visual Studio 2008v90
Visual Studio 2005v80

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Wed, 06 Sep 2017 12:04:44 JST (18d)