タグ

cとMicrosoftに関するkenjiro_nのブックマーク (5)

  • 全角文字の先行バイトかを確認する方法は?

    [戻る] TM 2004/08/09(月) 02:58:05 再びお世話になります。 VC6でMFCダイアログベースの製作を行っています。 CString型の文字列(buf)の左側から、指定された文字数を取り出す際に、 その文字数で取り出すと全角文字をまたいでしまう場合はその全角文字の 手前で取り出したいのです。そこで、 CString buf="!プログラミング!"; //これから6文字を取り出す。「!」は半角です。 if( _ismbblead(buf[6]) != 0 ) MessageBox(buf.Left(5)); else MessageBox(buf.Left(6)); のような記述をしているのですが、全角文字など関係なしに表示されて しまいます。上記の記述の場合ならば「グ」は表示されないはずなのに、 「ロ」の後に変なものがついてきてしまいます。こ

    kenjiro_n
    kenjiro_n 2010/01/29
    文字列途中での判断を行いたい場合には_ismbblead関数ではなく_ismbslead関数を使う。
  • _ismbslead, _ismbstrail

    kenjiro_n
    kenjiro_n 2010/01/29
    単体でのチェックを行う_ismbblead関数は知っていたがこの文字列の途中のバイトをチェックする関数は知らなかった。
  • VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。a.cppb.cを作って、コンパイルするとb.c - Visual... - Yahoo!知恵袋

    VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。 a.cpp b.c を作って、コンパイルすると b.c のコンパイル時に fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 となります。 そこで b.c に #include "stdafx.h" を追加したのですが、 fatal error C1853: 'Debug/a.pch' プリコンパイルされたヘッダーファイルは、 このバージョンのコンパイラと互換性がありません。 やはりエラーとなってしまいます。

    VisualC++6.0で、拡張子CPPとCの混在方法を教えて下さい。a.cppb.cを作って、コンパイルするとb.c - Visual... - Yahoo!知恵袋
    kenjiro_n
    kenjiro_n 2010/01/16
    fatal error C1853が出るのでおとなしく拡張子をどちらかに統一したほうが往々にして早いというバッドノウハウ。
  • Visual C++ 2005におけるscanf()に対する警告を抑制する方法

    以前、「scanf()のワーニング(Visual C++ 2005)」で書いたことなんですが、なんか微妙にヒット数があるみたいなので適当に書き直してみる。 偶には微妙にためになることも書いておかないとね・・・ 例えば次のような簡単なコードを書いてみたとします。 /****************************************************************************** * scanf_example.c *****************************************************************************/ #include <stdio.h> int main( void ) { int i; printf( "整数値を入力してください > " ); scanf( "%d", &i );

  • C++, strcpy の warning. - 教えて!goo

    VC2005 Express Edition を使ってます。 #include <iostream> #include <string> using namespace std; int main() { char str[10] = "hello"; strcpy(str, "HELLO"); } ↑ こちらをコンパイルすると hello.cpp .\hello.cpp(8) : warning C4996: 'strcpy' was declared deprecated C:\Program Files\Microsoft Visual Studio 8\VC\include\string.h(73) : see declaration of 'strcpy' という警告が出るのはどうしてでしょうか? #include <str

    kenjiro_n
    kenjiro_n 2009/12/04
    VC++2005では使用が推奨されていないのでウォーニングが出る。これを止めるために _CRT_SECURE_NO_DEPRECATE をデファインする必要があるとのこと。
  • 1