Visual C++でSetTimer関数を使用しています。
もしSetTimer関数で戻り値が帰ってこなかった場合どうなるのでしょうか?

A 回答 (1件)

> もしSetTimer関数で戻り値が帰ってこなかった場合どうなるのでしょうか?



「戻り値が返ってこない」ってどういうことでしょうか?
必ず何かが返ってきます。

ヘルプを見ると、成功した場合には新しい Timer を識別できる ID が、
失敗した場合には0が返ってくる、ということになってます。

返り値が0であることを指して、「戻り値が返ってこない」と言っているので
あれば、SetTimer() 自体が失敗していることを表します。なので、Timer が
作成されていないだけ(*)です。

  (*) これはこれで、期待通りのことでは無いんでしょうが (^^;

この回答への補足

SetTimer関数にバグが見つかったということを聞きました。
詳しいことは分からないのですが、戻り値が返ってこなくなるそうです・・。

補足日時:2001/09/10 22:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVisual C++ 6.0で作成したプログラムをVisual C++

Visual C++ 6.0で作成したプログラムをVisual C++ 2008で実行することはできるのでしょうか?

ビルドしてみるのですが、afxwin.hがないと表示されてしまいます。
自分でも検索してみたのですが、ダウンロードできる状況なのかも良く分かりませんでした。

2週間後にプレゼンがあるのですが、手持ちのパソコンにはVisual C++2008しかないため、6.0をインストール、と考えたのですがそれもできないようなので・・・

もし、実行できるのであればその方法をお手数ですが分かりやすく教えてくださるとうれしいです。

Aベストアンサー

ひょっとして Visual C++ Express Edition を使っているのでしょうか。

afxwin.h は MFC のヘッダーで、MFC は Visual C++ Express Edition では利用できません。
Visual Studio の Standard Edition 以上を購入するか、Visual C++ 6.0のプログラムをもとに .NET で作り直すかのどちらかですが、……前者は結構な出費となりますし、後者は 2 週間ではかなり難しいと思います。

Q関数の戻り値を構造体配列で。 VC++2005

構造体配列で値を戻すようコードを試行錯誤しています。ご教授下さい。

開発環境は、XPpro VisualStudio2005アカデミックです。

コード(抜粋)
struct double3d{
double x, y, z;
};//倍精度浮動小数三次元デカルト要素構造体型

//COAクラスのpublicで宣言。COAクラスを「psmf」でnewしています。
double3d COA::getu(double3d tempGP)
{
double3d tempCOA[2][2][2];  //構造体配列
中略
return tempCOA;  //*1 //tempCOAの先頭アドレスを返す
}

別のインスタンスから、
(double3d tCOA[2][2][2];)
tCOA = psmf->getu(GPosit);
と呼び出しています。(関数の呼び出し部分の動作は確認済)

この状況でコンパイルすると、*1の行で
'double3d::double3d(const double3d &)' : 1 番目の引数を 'double3d [2][2][2]' から 'const double3d &' に変換できません。(理由: 'double3d [2][2][2]' から 'const double3d' へは変換できません。コンストラクタはソース型を持てません、またはコンストラクタのオーバーロードの解決があいまいです。)
とエラーになります。

自分としては、戻り値に構造体配列の先頭アドレスを返しているつもりなのですが…。
尚、*演算子、&演算子で戻しても同様のエラーです。

様々なウェブサイトを拝見したのですが、構造体配列を戻り値として解説しているサイト様も少なく、手詰まりの状態です。
お手数をおかけしますが、宜しく御願いいたします。

構造体配列で値を戻すようコードを試行錯誤しています。ご教授下さい。

開発環境は、XPpro VisualStudio2005アカデミックです。

コード(抜粋)
struct double3d{
double x, y, z;
};//倍精度浮動小数三次元デカルト要素構造体型

//COAクラスのpublicで宣言。COAクラスを「psmf」でnewしています。
double3d COA::getu(double3d tempGP)
{
double3d tempCOA[2][2][2];  //構造体配列
中略
return tempCOA;  //*1 //tempCOAの先頭アドレスを返す
}

別のインスタンスから、
(double3d t...続きを読む

Aベストアンサー

まず根本的にローカル(オート)変数について理解できていないのではないでしょうか。

double3d COA::getu(double3d tempGP)
{
double3d tempCOA[2][2][2];  //構造体配列
中略
return tempCOA;  //*1 //tempCOAの先頭アドレスを返す
}

「tempCOAの先頭アドレスを返す」となっていますが
tempCOAはスタック上にある為、
getu終了直後にtempCOAはなくなります。
つまり先頭アドレスを返してもそれは関数終了後には無効なアドレスになります。



以下のようにすれば良いでしょう。

void COA::getu(double3d tempGP,double3d tempCOA[2][2][2])
{
中略
}

double3d tCOA[2][2][2];
psmf->getu(GPosit,tCOA);

Qvisual studio 2005 c++/CLI ではないC++ winアプリ

こんばんは

表記の件に関して質問があります。
表題のとおりなのですが
visual studio 2005 でc++/CLI ではないC++(gcnewがでてこないやつ)
windowsアプリを作成したいのですが、出来ますでしょうか。
2003にすればたぶん大丈夫なのですが、2005でできないでしょうか。
以上よろしくお願いします。

Aベストアンサー

有名どころでは「猫でもわかるプログラミング」でしょうね。
C#に慣れているのであれば、C言語の基本的なところからやっておいた方がよいでしょう。

http://homepage2.nifty.com/c_lang/
VC++2005なら
http://homepage2.nifty.com/c_lang/net2005/sample.htm
をまず理解する必要があり。
これに沿って、それぞれのサンプルを読み替える。

QVisual C++を使用するには,C++の知識は必要?

Visual C++ を使用する必要が生じたのですが,C言語の知識しかなく,
VC++を使用するにあたり,新たにC++を勉強しなければならないか分かりません。
C++を勉強してから,VC++を勉強し始めるべきなのでしょうか?
また,もしC++の勉強をしなければならない場合,使用する参考書として「独習C++」を考えているのですが,この参考書で事足りるでしょうか?
回答よろしくお願いします。

Aベストアンサー

ANo.1の方に同感です。

私はMS-DOSでのC言語からVC++へジャンプしました。

VC++を理解するということは
 1.C++という言語
 2.windowsOS,API
 3.MFC
を理解するということです。

私のとっかかりの本は、3冊のシリーズで
 1.Windowsプログラミングについて
 2.C++について
 3.MFCについて(だった思う)
に分かれており、C言語の知識とwindowsのアプリを触った経験があれば順を追って素直に理解できるものでした。
#処分してしまったので正しい書籍名はわかりませんが、クリーム色のカバーでした。

ただ、これはあくまで入門書で、その後C++に関する本、MFCに関する本、WIN32APIに関する何冊か読まないと、やはり仕事はできません。

QVisual C++ と Visual C++ Express Edition

の違いについて教えてください。
ExpressでもMDIを作成できるのでしょうか?

Aベストアンサー

「Express Edition」には、大雑把にリソースエディタとMFCが付いていません。あとインストーラ作成機能が無かったかな?細かな違いはだいぶありますけど。
WindowsAPIやC++/CLIを使う分には、ほぼ同等にプログラムを作る事ができます。
MDIももちろん作れますよ。

「猫でもわかるプログラミング」
http://www.kumei.ne.jp/c_lang/
のようにリソースエディタやクラスウィザードを使わない作り方をする分には、ほぼ差が無いと思います。


このカテゴリの人気Q&Aランキング

おすすめ情報