★初心者にVisual C++を教えるスレ★ Part32 at TECH
[2ch|▼Menu]
[前50を表示]
950:デフォルトの名無しさん
09/02/18 00:29:58
出直して来い

951:デフォルトの名無しさん
09/02/18 00:32:44
すごい理解

952:デフォルトの名無しさん
09/02/18 15:46:47
>>949
親読んでこい
説教してやる

953:デフォルトの名無しさん
09/02/18 17:59:43
VC++ 2005ExpressEditionでWin32アプリ作ってます。

int WINAPI WinMain( HINSTANCE hi, HINSTANCE hip, LPSTR sc, int ic )
{
   MSG    Msg;
   char    *str;
   memset( &Msg, 0, sizeof( MSG ) );


   return ( int )Msg.wParam;
}

strが0xcccccccc<不適切なPtr>となるのはなぜですか。
C++ならstring使えっていう事なんですか?

954:デフォルトの名無しさん
09/02/18 18:01:33
何が疑問なのかわからん。
そのstrは単に初期化してないポインタだからそのままじゃ使えないだろう。

955:デフォルトの名無しさん
09/02/18 18:02:27
strが初期化されていないから不定値。
デバッグ時に0xccで埋められてるだけ。
実際にアプリケーションを動かすと、不定値。

char *str = NULL;
とかで初期化する。

956:デフォルトの名無しさん
09/02/18 18:10:20
なるほど。
newしてあげれば不適切Ptrではなくなるんですね。
ありがとうございます。


あのぉ。。。もひとつ疑問がでちゃったんですが、いいですか?

newして例外出てんのに期待通りの動作してるのはなぜですか
これが解決できたら1年ぐらいROMしときます。


957:デフォルトの名無しさん
09/02/18 18:26:16
例外の内容によるでしょう。
具体的にコード出してこういう例外が出たと書いてくれないとわからんよ。

958:デフォルトの名無しさん
09/02/18 18:35:51
>>956
>newしてあげれば不適切Ptrではなくなるんですね。
なんもわかってねぇじゃん
まず、入門書と紙と鉛筆用意して全文書き取りからはじめたほうがいいぞ

959:デフォルトの名無しさん
09/02/18 19:22:49
すいません。3日かかってどうしても直らないエラーがあるので教えて下さい。

ビルドすると、
fatal error C1083: include ファイルを開けません。'afxwin.h': No such file or directory e:\visual studio 2005\projects\キャプチャ\irsystem\stdafx.h 43
というエラーが出ます。
環境は
Visual Studio 2005 Professional Edition sp1
OS:Vistaです。
Visual Stadio Professionalかつフルインストールしているので、
MFCが入っているはずなのですがどうしても動きません。
どなたかわかる方いらっしゃいますでしょうか。
わかる方がいましたら教えて下さい。


960:デフォルトの名無しさん
09/02/18 19:42:35
>>959
うーん、なんかVC2008eeででるんと同じようなエラー内容だなぁ・・・
なんか設定する必要あんのかな?

961:デフォルトの名無しさん
09/02/18 19:43:35
そのinclude文のとこ右クリックして開いてみ
それで見つからないならインクルードパスの設定すればいい

962:デフォルトの名無しさん
09/02/18 19:52:04
ツール - オプション - プロジェクト - VC++ ディレクトリ で
「インクルード ファイル」の設定内容をチェック

バージョンの違いでちょっと文言が違う鴨試練

963:デフォルトの名無しさん
09/02/18 20:03:24
URLリンク(support.microsoft.com)

これかなぁ・・・なんか違う?

964:デフォルトの名無しさん
09/02/18 20:25:58
ライブラリのパスの直下のlibファイルはリンクできるのですが、
サブディレクトリのlibファイルは、下記のようにはリンクできないのですか?
OK #pragma comment(lib, "mylib.lib")
NG #pragma comment(lib, "lib/mylib2.lib")

965:デフォルトの名無しさん
09/02/18 21:48:11
hhj


966:デフォルトの名無しさん
09/02/18 22:07:10
#pragma comment(lib, "lib\\mylib2.lib")

967:964
09/02/18 23:03:19
966
もちろんディレクトリ区切りを\\にしてもだめでした。
それにフルパスで記述したときに/で通るので、多分原因はそこではないと思います。
#pragma commentでライブラリファイルを指定するときに、サブディレクトリ内もちゃんと見るんですよね。
とりあえずそこの確認がほしいのです。

968:デフォルトの名無しさん
09/02/18 23:24:34
自分のプログラムとしてはなんかlibに関してはプロジェクトに追加してるかどうかだなぁw
ヘッダ読んでpraguma云々の記述はlibファイルなんかねーとこ指してるけど動いてるw
って状況やってみそ
ヘッダとlibファイルのプロジェクトへの追加な

969:デフォルトの名無しさん
09/02/18 23:40:56
./hoge/lib.lib

とかでもダメぽ?

970:964
09/02/19 00:17:33
ファイルの階層はこんな感じです。
C:\MyLibrary  ←VC++ディレクトリ-ライブラリとインクルードの一番上で指定。
  mylib.lib
  lib
    mylib.h (#include <lib/mylib.h>は失敗しない)
    mylib.lib (上では区別のためにmylib2.libと書いたけど、コピーしたもの)
プロジェクト-リンカ-追加の依存ファイルで指定しても

1>LINK : fatal error LNK1104: ファイル 'lib/mylib.lib' を開くことができません。

と出ます。
./lib/mylib.libも同様にpragma でも依存ファイルの指定でも失敗しますorz

971:デフォルトの名無しさん
09/02/19 01:19:58
まさか、lib\\mylib.h のなかに #pragma comment(lib, "lib/mylib.lib") って書いている
わけじゃないだろーな

972:デフォルトの名無しさん
09/02/19 01:23:57
コンパイルしようとしてるソースファイルはどこなんだよ

973:デフォルトの名無しさん
09/02/19 02:03:28
// main.cpp
// マイドキュメント-VS2008-Projects/Test/Test
// = プロジェクトディレクトリ
#include <lib/mylib.h> // OK
#pragma comment(lib, "lib/mylib.lib") // NG
//#pragma comment(lib, "C:/MyLib/lib/mylib.lib") // OK
//#pragma comment(lib, "mylib.lib") // OKだけど違うファイル
int main()
{
const int ret = test_func(2);
return 0;
}

// mylib.h
#pragma once
int test_func(int val);

//mylib.cpp
#include "mylib.h"
int test_func(int val) { return val * 100; }

改行を削るとこのような感じになります。
コンパイルすると970のエラーメッセージが出ます。。。
もう遅いし、解決できそうにないのであきらめてフルパスで書くことにします。
ありがとうございました。

974:デフォルトの名無しさん
09/02/19 02:41:48
同名の違うファイルにパスが通ってるのも問題じゃないか

975:デフォルトの名無しさん
09/02/19 03:16:25
つーか、自前のlibなら、#pragma comment(lib, "ほにゃらら")は ヘッダに書けよ。
したら、cpp にゃ、ヘッダをインクルードするだけで済むだろーが。

じゃないと、他のプロジェクトで mylib.h を使いまわす時に、lib をリンクし忘れるのがオチだ。

976:デフォルトの名無しさん
09/02/19 05:36:29
>>970
あるよ。
以上。
↓次の方どうぞ

977:デフォルトの名無しさん
09/02/19 11:22:48
>>926
このコードの真ん中って、「this->」いらなくない?

978:デフォルトの名無しさん
09/02/19 11:24:50
>>977
TextBoxと紛らわしかったので、説明上念のためつけただけ。

979:デフォルトの名無しさん
09/02/19 11:28:08
>>978
いや、エラーになるでしょ

980:デフォルトの名無しさん
09/02/19 11:36:27
>>978

array<System::Windows::Forms::TextBox^>^ textBox;


ひょっとして、これだけ、違うところに記述するんですか?

981:デフォルトの名無しさん
09/02/19 11:39:54
同じメソッド内に書いたらそこでしか使えないじゃない。
まあそれで済むならそれでいいけど。

982:デフォルトの名無しさん
09/02/19 11:50:06
>>981
すみません。いけました。
ありがとうございます

983:デフォルトの名無しさん
09/02/19 20:52:20



最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4356日前に更新/248 KB
担当:undef