• 締切済み

Visual Studio 6.0でビルド可能だったものがVisual C++ 2008 Express Editionでerror C2664発生

お世話になります。 Visual Studio 6.0でビルド可能だったものがVisual C++ 2008 Express EditionでエラーC2664を出してしまい解決法を模索しております。 同様のトラブルを調べてみましたが、例えば「文字セット」を「マルチ バイト文字セットを使用する」にしても改善されませんでした。 void time_sobi(int sobi_time){ long time1,time2 ; time(&time1); time2=time1; while(labs(time1-time2)<sobi_time){ time(&time1); } } 上述の部分で: s\jun\デスクトップ\hight\hight.cpp(112) : error C2664: 'time' : 1 番目の引数を 'long *' から 'time_t *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>c:\documents and settings\jun\デスクトップ\hight\hight.cpp(115) : error C2664: 'time' : 1 番目の引数を 'long *' から 'time_t *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 とメッセージが出て、該当する部分はそれぞれ3,6行目のtime(&time1);です。 ご教示くださる方いらっしゃいましたら宜しくお願い致します。

みんなの回答

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.3

そもそも、何をするプログラムなん?? 何をもって、動かないと判断してるの?? エラーダイアログが出るの?? 実行タイミングがおかしいの?? GUIアプリなの?コマンドラインアプリなの?? んーなもん、 「パソコンの電源入れたけど、動かない」って言われたのと同じ状況。 「6.0の時と同様の動作をしない」 で?6.0の時はどういう具合に動作をしていたのでしょうか。 かなり大雑把な質問なので、もう少し的を絞りましょう。 コンパイルが終わったなら、プロジェクトディレクトリの debugという名前のフォルダに実行ファイル(.exeファイル)ができていると思います。 それを直接実行してみたら、どうでしょうか。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

「ちゃんと動かない」って言われても, 「あなたがどのような動作を期待したのか」「実際にどのような動作になったのか」がわからないと判断できない.

cherry_pho
質問者

補足

大変失礼致しました。 「あなたがどのような動作を期待したのか」-->exeファイルが作成され、実行可能となることを期待 「実際にどのような動作になったのか」-->Visual Studio 6.0の時はビルド(F7)した後、実行(Ctrl + F5)で作成された実行ファイル(.exe)が起動していたが、2008 Express Editionではデバッグの開始が相当しているらしく、デバッグ開始を行うとexeファイルが起動するが6.0の時と同様の動作をしない 判断できますでしょうか。宜しくお願い致します。

noname#208124
noname#208124
回答No.1

VC++2005からtime_tの既定は64ビットです _abs64を使って64ビットで処理するか、_time32を使って32ビットで処理してください

参考URL:
http://msdn.microsoft.com/ja-jp/library/1f4c8f33.aspx
cherry_pho
質問者

お礼

dumm様; さっそくのご回答ありがとうございます。以下のように_time32に書き換えたらビルドできました。 void time_sobi(int sobi_time){ long time1,time2 ; _time32(&time1); time2=time1; while(labs(time1-time2)<sobi_time){ _time32(&time1); } } 自分は普段Cを使っていないのでよくわからず申し訳ございませんが、time_tを使う場合 #include <time.h> の宣言が必要なのではないでしょうか?このcppファイルには #include "StdAfx.h" #include <Windows.h> #include "Decl-32.h" の宣言のみです。試しに#include <time.h>の有無で比較してみましたが、関係なくビルドできるようです。

cherry_pho
質問者

補足

すみません、補足です。 StdAfx.h内で#include <time.h>の宣言がありました。 失礼しました。 コンパイルはうまく行ったのですが、exeファイルの実行がちゃんとなされない状況です。 Visual Studio 6.0の時はビルド(F7)した後、実行(Ctrl + F5)で作成された実行ファイル(.exe)が起動していたのですが、2008 Express Editionでは起動はするのですが、ちゃんと動きません。 これでは情報不足かも知れませんが、何かアドバイス・コメントあれば宜しくお願いします。

関連するQ&A

  • Visual C++

    超ド素人でVisual C++の入門本を開けたばかりなのですが、いきなりつまずいてしまいました。 本に書いてあるプログラムをコピーしてビルドしてもエラーが出ます。 「error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」 と出ます。書籍はVC++5.0/6.0対応で、使っているのはVisual Studio2005のVC++です。バージョンが違うのでエラーが出るのでしょうか?

  • error C2664

    現在VisualStudio C++ 6.0にてプログラムを組んでいるのですが、以下のようなエラーが出ます。 型の変換ができていないであろうことはわかるのですが、解決方法がわかりません。 どのような解決方法があるのでしょうか? よろしくお願いします。 error C2664: 'strcat' : 1 番目の引数を 'unsigned char [256]' から 'char *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

  • Visual Studio 超初心者です。

    初めての質問です、よろしくお願いします。 「Visual Studio 2005(アカデミックパック)」を先日購入したばかりの初心者です。 プログラミング経験はCの本を一冊分くらい勉強した程度です。 ネットや書籍の情報を読んでいて、次はVisual C++なのかなと思い「Visual C++1 はじめてのWindowsプログラミング/山本信雄著」と合わせて購入しました(Express Editionというものがあると知ったのはその後でした・・・)  質問なのですが、上に挙げた本のコードをVisual Studioに記述してもビルドができません。ビルドしても「 error C2664: 'lstrcpyW' : 1 番目の引数を 'char [80]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照)指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」といったエラーが4つほど出てしまいます。ヘルプ参照とありますが、それもよく分かりません・・・(泣)。  最低レベルの質問かもしれませんがよろしくお願いします。

  • SDKでのエラーなのですが。

    はじめまして。 SDKの勉強で猫でもわかる~のHPの第37章のサンプルを実行したのですが、 --------------------構成: 037 - Win32 Debug-------------------- コンパイル中... main.cpp D:\SDK\037\main.cpp(230) : error C2664: 'CallWindowProcA' : 1 番目の引数を 'int (__stdcall *)(void)' から 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換できません。 (新しい機能 ; ヘルプを参照) この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。 D:\SDK\037\main.cpp(248) : error C2664: 'CallWindowProcA' : 1 番目の引数を 'int (__stdcall *)(void)' から 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' に変換できません。 (新しい機能 ; ヘルプを参照) この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。 cl.exe の実行エラー 037.exe - エラー 2、警告 0 というようなエラーが出てしまいました。 このエラーを回避するにはどのようにすればいいのでしょうか?

  • Visual C++のサンプルプログラムを入力時

    Visual C++のサンプルプログラム(CD付属ソースから)を入力・コンパイル時のエラー すみません、教えてgoo初心者なもので、返信感覚で回答者にお礼を書いていたら再質問の順序等訳がわからなくなってしまったので新規に質問します。 前回質問:http://okwave.jp/qa/q6315455.html 猫でもわかるゲームプログラミングhttp://www.kumei.ne.jp/c_lang/index.htmlという本で勉強しようとしています。 本の巻末に書いてある通り、プロジェクトを新規作成でWindowsアプリケーション、空のプロジェクトで始め、サンプルのソースをコピー&ペーストで貼り付けたんですが、 1>new1.cpp 1>c:\documents and settings\REI\my documents\visual studio 2008\projects\new1\new1\new1.cpp(58) : error C2440: '=' : 'LPCSTR' から 'LPCWSTR' に変換できません。 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>c:\documents and settings\REI\my documents\visual studio 2008\projects\new1\new1\new1.cpp(85) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [6]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>ビルドログは "file://c:\Documents and Settings\REI\My Documents\Visual Studio 2008\Projects\new1\new1\Debug\BuildLog.htm" に保存されました。 1>new1 - エラー 2、警告 0 となります。すみません、ソースは文字数の関係でUPできないのですが、 これでは苦労してプログラム入力したとしても悉く実行できないってことですよね。 どなたか分かる方いましたらご回答ください。

  • 意味がわからないエラーがあります【14歳からはじめるC言語ゲームプログラミング】

    14歳からはじめるC言語ゲームプログラミング(横スクロールアクションゲーム)をやっていて、第5章で意味がわからないエラーがでました・・・ error C2664: 'MessageBoxW' : 2 番目の引数を 'const char [25]' から 'LPCWSTR' に変換できません。 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 というもので、chap4.cppの23行目と67行目でひっかかりました。 どうすれば解決できますでしょうか。 C言語に詳しい方、よろしくおねがいします。

  • エラー C2664

    プログラミングの初心者です. 「error C2664: 'fclose' : 1 番目の引数を 'const char [14]' から 'FILE *' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。」 以上のエラー文がでてきて, http://tipstips.client.jp/ugopen/UfuncErrorW32.html ↑の操作をしても消えませんでした. エラー文の出てきたのは fclose("sikisaizu.csv"); というところです. よければヒント等を教えていただけると嬉しく思います. よろしくお願い致します.

  • VC++2008のC2664エラー

    VisualStdio2008で、現在手を出しているARToolKitを利用したプログラムです。 卒研に使うもので以前別の方が作ったプログラムなのですが、C2664というエラーが発生し、その解決方法がよくわからないので質問します。 以下が、該当する部分のソースです。また、エラーの文章もそのままあげています。 左に書いてあるのは行数です。 「*cparam」が「char **からARParam *へ変換できない」と言うものなのですがどうすれば解決できるでしょうか。 一応、いくつかのサイトも見てみましたがよくわからなかったので質問しました。 解決方法を教えてくださるとありがたいです。 int xsize; int ysize; char *vconf = "Data/WDM_camera_flipV.xml"; //ビデオデバイスの設定ファイル char *cparam = "Data/camera_para.dat"; //カメラパラメータファイル //初期化関数 static void init(void) { ARParam wparam; int i; /*ビデオデバイス設定*/ if(arVideoOpen(vconf) < 0) exit(0); /*ウィンドウサイズ取得*/ if(arVideoInqSize(&xsize,&ysize) < 0) exit(0); printf("Image size(x,y) = (%d,%d)\n",xsize,ysize); /*カメラパラメータ読み込み*/ if (arParamLoad(cparam,1,&wparam) < 0){ printf("Camera parameter load error !!\n"); exit(0); } /*カメラパラメータ初期化*/ 95 arParamChangeSize(&wparam,xsize,ysize,&cparam); 96 arInitCparam(&cparam); 97 printf("*** Camera Parameter ***\n"); 98 arParamDisp(&cparam); /*パターンファイル読み込み*/ for (i = 0; i < OBJ_NUM; i++){ if( (object[i].patt_id = arLoadPatt(object[i].patt)) < 0){ printf("pattern load error : %s\n", object[i].patt); exit(0); } } /*gsubライブラリ初期化*/ 109 argInit(&cparam, 1.0, 0, 2, 1, 0); mqoInit(); } 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(95) : error C2664: 'arParamChangeSize' : 4 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(96) : error C2664: 'arInitCparam' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(98) : error C2664: 'arParamDisp' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 1>f:\卒検\プログラムセット\カメラキャリブレーション\kakotest\kakotest\kakotest.cpp(109) : error C2664: 'argInit' : 1 番目の引数を 'char **' から 'ARParam *' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

  • 構造体をポインターに入れたい

    構造体をポインターに入れたいのですがうまくいきません どうしたら入れることができますか? ―――ソース――― struct str{  char *name; }; static struct str state_ab[60][4] = {   { { { "いちご" } } , { { "みかん" } } ,{ { "レモン" } } , { { "ブドウ" } } },   { { { "" } } , { { "" } } ,{ { "" } } , { { "" } } }, }; static struct str state_ab2[60][8] = {   { { { "きゅうり" } } , { { "セロリ" } } ,{ { "じゃがいも" } } , { { "にんじん" } } , { { "たまねぎ" } } , { { "ニンニク" } } ,{ { "レタス" } } , { { "キャベツ" } } },   { { { "" } } , { { "" } } ,{ { "" } } , { { "" } } , { { "" } } , { { "" } } ,{ { "" } } , { { "" } } }, }; static struct str state_ab3[60][4] = {   { { { "牛肉" } } , { { "豚肉" } } ,{ { "鶏肉" } } , { { "魚肉" } } },   { { { "" } } , { { "" } } ,{ { "" } } , { { "" } } }, }; char *state_ab_f_read( int mode , int num1 , int num2 ){   struct str *p;   switch( mode ){     case 0: p = state_ab; break;     case 1: p = state_ab2; break;     case 2: p = state_ab3; break;   }   return p[ num1 ][ num2 ].name; } ―――エラー内容――― c:\documents and settings\user\my documents\visual studio 2008\projects\kami\state_ab_fd.cpp(237) : error C2440: '=' : 'str [60][4]' から 'str *' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\documents and settings\user\my documents\visual studio 2008\projects\kami\state_ab_fd.cpp(238) : error C2440: '=' : 'str [60][8]' から 'str *' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\documents and settings\user\my documents\visual studio 2008\projects\kami\state_ab_fd.cpp(239) : error C2440: '=' : 'str [60][4]' から 'str *' に変換できません。 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 c:\documents and settings\user\my documents\visual studio 2008\projects\kami\state_ab_fd.cpp(241) : error C2676: 二項演算子 '[' : 'str' は、この演算子または定義済の演算子に適切な型への変換の定義を行いません。(新しい動作; ヘルプを参照) c:\documents and settings\user\my documents\visual studio 2008\projects\kami\state_ab_fd.cpp(241) : error C2228: '.name' の左側はクラス、構造体、共用体でなければなりません ビルドログは "file://c:\Documents and Settings\USER\My Documents\Visual Studio 2008\Projects\kami\Debug\BuildLog.htm" に保存されました。

  • Visual C++ 2008 Express EditionでCString

    Visual C++ 2008 Express Editionでは、CStringを使用できない のでしょうか? 使用できないのであれば、CStringを引数に している関数は全て使用不能ということですか? 試しにstringにしてみましたが以下のエラーになりました。 'std::string' から 'LPCWSTR' に変換できません。

専門家に質問してみよう