[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/05 22:03 / Filesize : 248 KB / Number-of Response : 984
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part32



1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:16:11 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。

934 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:23:03 ]
まだわかんねー。
何がやりたいんだ。
構造体の定義と、変数の宣言とその変数のextern宣言が必要だが、そもそも変数(実体)がない。

935 名前:デフォルトの名無しさん [2009/02/16(月) 18:29:52 ]
#include "st.h"
でいいんじゃないの?何がしたいのかまったくもってわからない。

936 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:30:27 ]
ageスマソ

937 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:10:08 ]
externでぐぐるぐらいしてから来たらいかがですかね
定義、宣言、参照について全く理解していない気がします。

938 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:10:14 ]
グローバルに構造体の型を宣言しています。
さらに、実体もグローバルに定義しています。

実体に値が入っていて、
その値をスレッド内でグローバルで定義した実体を通して
参照したいです。

グローバル変数を使う知識として、
externを付けることは知っているのですが、
そもそも、スレッド内からグローバルに定義した
構造体にアクセスできるかどうかわかりません。

何か方法がありましたら、教えてください。

>>935
やってみたのですが、そのようなヘッダはありませんと怒られてしまいました。

939 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:14:55 ]
あと、拙い説明にもかかわらず
ご返事いただきありがとうございます。

>>937
結構ぐぐったのですが私の理解力が足らず申し訳ございません・・・

940 名前:935 mailto:sage [2009/02/16(月) 19:15:48 ]
// FILE : st.h
struct st { ... };
extern st g_st;

// FILE : st.cpp
#incluede "st.h"
st g_st;

// FILE : a.h
#include "st.h"
class A { ... };

ってことね。とりあえず何を参考に勉強してるのかしりたい。

941 名前:デフォルトの名無しさん [2009/02/16(月) 20:08:02 ]
すいません、聞きたいのですが。。。
Windowsファームアプリケーションを作成したのですが、ほかのPCで動作しません。
「このアプリケーションの構成が正しく・・・」と表示されます。
リリースコンパイルもしましたが動きません。
「プロパティ」の「C++」の「コード生成」の「ランタイムライブラリ」を「マルチスレッド」にすると、コンパイルすることができません。
いったいどうすれば動くのでしょうか?
ほかのPCに、ランタイムを入れない方法を探しています。
お願いします。

942 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 20:34:19 ]
>>941
×ファーム
○フォーム

純粋なWin32アプリや標準ライブラリだけを使うコンソールアプリなら
ライブラリを静的にリンクすればよいと思うけど、
Windowsフォームアプリケーションでランライムに依存しないのは無理じゃないの?



943 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 21:04:01 ]
> Windowsファームアプリケーション

C++/CLIだったりして・・・。そのPC、.netframework入れてないとかw

944 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:42:27 ]
>>941
>ランタイムを入れない方法を探しています。
無理
フォームアプリはランタイム(.NET Framwork)必須


945 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 11:57:12 ]
いろいろ試した結果、パスに日本語が入ってると読み込めないようです
どうすれば読み込めるようになりますか?
char fname[] = "C:\\テスト\\test.txt";
ifstream fin;
fin.open(fname);
char c;
while (fin.get(c)) {
printf("%c", c);
}
fin.close();
if (getch()) return 0;

946 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 12:42:13 ]
locale設定した?

947 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 13:04:17 ]
setlocale(LC_ALL, "japanese");
ifstream fin;
こうすれば読み込めるようになりました、ありがとうございます

948 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:05:29 ]
先物の夕場は証券自己とかの約定させる気のない発注・取り消しに個人が振り回されて
値がついてる感じだな

949 名前:デフォルトの名無しさん [2009/02/18(水) 00:28:05 ]
VC++とVB&C#の違いは大まかに言うと
オブジェクト->プロパティ
オブジェクト.プロパティ
という理解でいいんでしょうか?

950 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:29:58 ]
出直して来い

951 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:32:44 ]
すごい理解

952 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 15:46:47 ]
>>949
親読んでこい
説教してやる



953 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 18:01:33 ]
何が疑問なのかわからん。
そのstrは単に初期化してないポインタだからそのままじゃ使えないだろう。

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

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

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


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

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


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

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

959 名前:デフォルトの名無しさん [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 19:42:35 ]
>>959
うーん、なんかVC2008eeででるんと同じようなエラー内容だなぁ・・・
なんか設定する必要あんのかな?

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

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

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



963 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 20:03:24 ]
support.microsoft.com/kb/320479/ja

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

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

965 名前:デフォルトの名無しさん [2009/02/18(水) 21:48:11 ]
hhj


966 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 22:07:10 ]
#pragma comment(lib, "lib\\mylib2.lib")

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

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

969 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 23:40:56 ]
./hoge/lib.lib

とかでもダメぽ?

970 名前:964 mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 01:19:58 ]
まさか、lib\\mylib.h のなかに #pragma comment(lib, "lib/mylib.lib") って書いている
わけじゃないだろーな

972 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 01:23:57 ]
コンパイルしようとしてるソースファイルはどこなんだよ



973 名前:デフォルトの名無しさん mailto:sage [2009/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 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 02:41:48 ]
同名の違うファイルにパスが通ってるのも問題じゃないか

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

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

976 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 05:36:29 ]
>>970
あるよ。
以上。
↓次の方どうぞ

977 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 11:22:48 ]
>>926
このコードの真ん中って、「this->」いらなくない?

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

979 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 11:28:08 ]
>>978
いや、エラーになるでしょ

980 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 11:36:27 ]
>>978

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


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

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

982 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 11:50:06 ]
>>981
すみません。いけました。
ありがとうございます



983 名前:デフォルトの名無しさん mailto:sage [2009/02/19(木) 20:52:20 ]







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<248KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef