• ベストアンサー

DWORDの警告

itinohanaの回答

  • itinohana
  • ベストアンサー率41% (58/139)
回答No.1

sleeptimeの型をDWORDにしてください。 Sleep()関数の引数はDWORDです。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc429358.aspx
spitzer3
質問者

お礼

doubleからキャストしてDWORDにするというのは出来ないのですね。 ご回答ありがとうございました。

関連するQ&A

  • Cのソースファイルにすると警告が出る理由

    wavファイルを再生するプログラムを勉強中なのですが、下のプログラムをビルドすると error C2055: 型リストではなく、仮パラメーター リストが必要です。 warning C4047: '関数' : 間接参照のレベルが 'MCIDEVICEID' と 'void *' で異なっています。 warning C4024: 'mciSendCommandW' : の型が 1 の仮引数および実引数と異なります。 という警告が出ます。 いろいろ試した結果、ソースファイルの拡張子をcからcppに変更したら警告が消えたのですがどうして拡張子がCのソースファイルでビルドすると警告がでるのか理由が全く分かりません。 拡張子を変更しないで警告を出さないようにするにはどこを直せばいいのでしょうか? --- 実行環境 --- Microsoft Visual C++ 2010 Express WIN32 ユニコードビルド C言語 #include<Windows.h> #include "resource.h" #include<MMSystem.h> #pragma comment(lib,"winmm.lib") HINSTANCE hinst; INT_PTR CALLBACK dlgproc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE,LPSTR,int nCmdShow) { hinst=hInstance; DialogBox(hinst,TEXT("mydlg"),NULL,dlgproc); return 0; } INT_PTR CALLBACK dlgproc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp) { static MCI_OPEN_PARMS mop; static MCI_PLAY_PARMS play; switch(msg) { case WM_INITDIALOG: mop.lpstrDeviceType=TEXT("WaveAudio"); mop.lpstrElementName=TEXT("C:\\Users\\test.wav"); mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE | MCI_OPEN_ELEMENT,(DWORD_PTR)&mop); mciSendCommand(mop.wDeviceID,MCI_PLAY,NULL,(DWORD_PTR)&play); return (INT_PTR)TRUE; case WM_CLOSE: EndDialog(hwnd,LOWORD(wp)); return (INT_PTR)TRUE; break; } return(INT_PTR)FALSE; }

  • VC2005 ビルド時の警告内容

    C初心者です。 配列のアドレスを表示させようとしています。 以下、実処理の一部です。 short int a[4]; a[0] = 10; a[1] = 20; a[2] = 30; a[3] = 40; printf("&a[0]=%#x\n",&a[0]); これでビルドを行うと警告が出ます。 warning C4313: 'printf' : 書式文字列内の '%x' が引数 1 ('short [4]' 型) と競合しています。 VC++6.0の時は出なかったと思うのですが、VC++2005にしたらこのように表示されます。 どのように解消すればよいのでしょうか?

  • デバッグビルドとリリースビルドで計算結果が違う

    こんにちは。 VC++.netで暗号化ソフトを作っているんですが、デバッグモードで実行した結果と、リリースモードで実行して得られる結果が違うので困っています。 原因としては、何が考えられるでしょうか? warningで、「warning C4267: '=' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。」と表示されましたが、(int)でキャストしてから警告は出なくはなっているんですが。 もう一つ、「LINK : warning LNK4089: 'SHELL32.dll' へのすべての参照は /OPT:REF によって廃棄されます。」と出ていますが、これは関係なさそうですので無視しています。 もしかして、同じような経験をされた方がいるんではないかと思い質問しました。 よろしくお願いします。

  • WinAPI

    起動をするプログラムなのですが DWORD i; i = timeGetTime(); ShellExecuteA(hWnd, "open", hogeEXE, "引数1 引数2 ○",NULL,0); と、このようにやって 引数1 引数2 21345678(適当な値です。) とやりたいのですが 変数を渡すにはどうすればよいでしょうか?

  • 複素数<complex.h>のErrorに関して

    初めて質問させて貰います。 質問するにあたり至らない点もあるかもしれませんが、その際は御指摘頂ければ随時訂正していきたいと考えています。 プログラムに関しては素人と考えてください。 複素数を使った計算プログラムを書きたく思い、色々と調べたところcomplexをincludeすれば複素数が定義できるという所まで調べられました。 早速調べたとおりにプログラムを書いてみたのですが、エラーが発生してしまいます。 エラーの示すことも、何故エラーがでたのかも分かりません。 よろしければ、御助言の方よろしくお願いします。 使用ソフト→ Microsoft Visual C++ 2008です。 以下プログラム(num001.cppで保存)→ #include<stdio.h> #include<complex.h> ~以下略 という感じでプログラムを書いたのですが、コンパイルしてみると、以下のようなエラーが発生してしまいます。 以下発生したエラーです→ num001.cpp C:\program\C++5.5\include\complex.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\complex.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\stdcomp.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\compnent.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stddefs.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stddefs.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\stdcomp.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stdwind.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。 データの損失を防ぐために、ファイルを Unicode 形式で保存してください。 C:\program\C++5.5\include\rw/stdwind.h(3) : warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\rw/stdwind.h(208) :warning C4068: 不明なプラグマがありました。 C:\program\C++5.5\include\rw/stddefs.h(181) :warning C4068: 不明なプラグマがありました。 C:\VC\INCLUDE\xlocale(342) : warning C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 C:\program\C++5.5\include\complex.h(1488) : warning C4068: 不明なプラグマがありました。 よろしくお願いします。

  • メールを送ると警告が戻ってきます。どうして?

    ********************************************** ** THIS IS A WARNING MESSAGE ONLY ** ** YOU DO NOT NEED TO RESEND YOUR MESSAGE ** ********************************************** メールを出すと時々このような警告?が戻ってきます。送って数時間たってからきます。届いているのでしょうか心配でまた出します。 どういう警告でしょうか。なぜ出るのでしょうか?教えてください。 outlook最新です。 The original message was received at Fri, 24 Feb 2023 21:02:30 +0900 from ms-mxout01.plus.so-net.ne.jp [10.240.82.17] ----- Transcript of session follows ----- ... while talking to mail.hotel-fortune.de.: >>> DATA <<< 452 4.2.2 Mailbox full <info@************>... Deferred: 452 4.2.2 Mailbox full Warning: message still undelivered after 4 hours Will keep trying until message is 1 day old

  • JExcelで警告が出て書式が設定できない。

    JExcelで警告が出て書式が設定できない。 JExcelでExcelファイルのセルへ、値の書き込みや書式の変更、背景色の変更などを行っています。 書き込んでいるデータの数が少ない場合は問題ないのですが、大量のデータを書き込んだ場合、以下のような警告がコンソールに出力されます。 Warning: Maximum number of format records exceeded. Using default format. この警告が出力されると、セルへの値の書き込みは出来ていますが、書式や背景色が変更されません。 どう対処すればよいのでしょうか?

    • ベストアンサー
    • Java
  • _beginthread()の使用について

    元々スレッドの生成を CreateThread(NULL, 0, ThreadFunc, (LPVOID)&param, 0, &dwID); としていたのですが、 生成したスレッドがC言語のライブラリを利用する場合、 CreateThread()ではなく_beginthread()を使うとMSDNに記載されていました。 そこでプログラムを_beginthread()に書き換えたのですが、 『error C2440: '関数' : 'DWORD (__stdcall *)(LPVOID)' から 'void (__cdecl *)(void *)' に変換できません。』 『warning C4024: '_beginthread' : の型が 1 の仮引数および実引数と異なります。』 とのエラーが表示されてしまいます。 アドバイスをよろしくお願いします。 #include <windows.h> #include <process.h> #define APP_NAME TEXT("Sample_MainWindow") typedef struct _ThreadParam {   HWND owner;   POINT point; } ThreadParam; DWORD WINAPI ThreadFunc(LPVOID vdParam) {      ・     (省略)      ・ } LRESULT CALLBACK WindowProc(   HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) {   ThreadParam param;   switch(uMsg) {     case WM_LBUTTONDOWN:       param.owner = hWnd;       param.point.x = LOWORD(lParam);       param.point.y = HIWORD(lParam);       _beginthread(ThreadFunc, 0, &param);       return 0;     }   return DefWindowProc(hWnd, uMsg, wParam, lParam); }

  • DWORDの実際の型は何でしょうか

    VC++.NETの環境です。 DOWRD dw1 = 1; int i = 2; と定義し ここで if ( i > dw1 ){ 何かの処理; } とコーディングすると warning C4018: '>' : signed と unsigned の数値を比較しようとしました。 のワーニングがでます。 これは、DWORDがint型でなくunsigned int型のようにも見えます。 ある本によれば(VC++.V.NET逆引き大全500の極意) DWORD はint型であると記述されています。 もし、int型ならこのワーニングはでないはずなのですが、 なぜでるのでしょうか。又、DWORDの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。

  • OVERLAPPED構造体が分かりません・・。

    シリアルポートで非同期データ通信するプログラム作成初歩段階です。 ReadFileの第5引数にはOVERLAPPED構造体へのポインタを指定することは分かったのですが。この構造体の各メンバにどんな値を入れたらいいのか分りません・・・。 よろしくお願いします。 typedef struct _OVERLAPPED { ULONG_PTR Internal; ULONG_PTR InternalHigh; DWORD Offset; DWORD OffsetHigh; HANDLE hEvent; } OVERLAPPED;