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


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

【初心者歓迎】C/C++室 Ver.68【環境依存OK】



1 名前:デフォルトの名無しさん [2009/09/17(木) 22:22:59 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.67【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1247937958/l50

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

◆ソースのインデントについて
半角やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのが最も良いですが、
直接貼るのであれば、全角空白か   に置換しておくことをお勧めします。

237 名前:234 mailto:sage [2009/09/30(水) 19:39:19 ]
>>235
最後まで到達できないのは、rule<> exper=uint_p|real_p;のuint_pでパースが10で成功し、exprが成立するため。そこでパースが終わってしまう。
防ぐには以下の方法がある。
strict_real_pを使うと小数点が無い実数にはマッチしなくなる。
longset_d[P]...を使うと最大長マッチが採用される。
eps_p(P)を使って区切りまでパースしたかを確認できる。


238 名前:232 mailto:sage [2009/09/30(水) 19:51:54 ]
>>237
strict_real_p | uint_p で出来ました。
大変助かりました。

239 名前:デフォルトの名無しさん [2009/09/30(水) 20:00:38 ]
>>236ですが、
開発環境は、Ubuntu,gcc4.1です。


240 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 20:19:42 ]
>>239
いや、だから columns について調べるべきでしょう。

241 名前:デフォルトの名無しさん [2009/09/30(水) 20:26:26 ]
>>240
調べたのですが、解らなかったのでこちらに来ました。前のスレのほうで環境依存スレに行ったほうがいいと言われたというのも一つです。

console.c内にて
#define COLUMNS 80
static unsigned long lines=LINES,columns=COLUMNS;

として定義及び宣言があり、どうしてcolumns変数が出てくるのかが全くわからないのです。


242 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:17:02 ]
TCHARからwchar_t *に変換(キャスト)するにはどうしたらよいですか?

243 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:25:31 ]
なぜそういうことする必要があるか知らんが…

TCHAR ch;
// ...
wchar_t *p = (wchar_t *)ch;

244 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:28:31 ]
>>243
あ、そのままでよかったんですね^^;
センキュー

245 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 21:36:05 ]
>>244
だめだよ。

TCHAR* ch;
// ...
wchar_t *p = (wchar_t *)ch;

なら、いい。

あと、最近のVCは_UNICODEがデフォになってるけど、
古いやつだったら、_MBCSがデフォだから、もしそうだったら、
単純にはキャストできない。



246 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 22:31:17 ]
static unsigned long lines=LINES;
static unsigned long columns=COLUMNS;

247 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:37:31 ]
デスクトップの画像はどういう風に取得すればいいんでしょうか?
事務仕事をほぼ全自動でできるようなソフトを作ってみたいと思っているのですが、
とっかかりがつかめません
bitmap形式などは何となくわかったのですが、肝心の画像自体の取得方法が分かりません
APIを使うような感じはするのですが、見つかりませんでした
分かる方、教えてください。お願いします

248 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:40:13 ]
>>247
uwsc ってソフトがあるよ

249 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:41:52 ]
>>247
GetDC(HWND hWnd);
で、0を渡せば、画面のデバイスコンテキストが取れたような記憶が。

250 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 23:45:09 ]
>>248>>249
ありがとうございます
既にあったのですね、トホホ

なんだか悔しいので、とりあえず作るだけ作ってみることにします

251 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 09:37:37 ]
別に止めはしないが、とても「事務仕事をほぼ全自動でできるようなソフト」を作ろうとする人間の台詞じゃないな。

252 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 09:41:07 ]
そもそも、「デスクトップの画像」と言う当初の質問が自動化とどう関係しているのだろうか

253 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 10:05:49 ]
スクリーンショットを使う事務作業なんていくらでもあると思うけど

254 名前:232 mailto:sage [2009/10/01(木) 12:57:19 ]
boost::spirit でまた躓いてしまいました。


parse_info<> pi;

pi = parse("12.", real_p); // 12. ドットに注意
ASSERT(pi.full);
ASSERT(pi.length == 3); // 止まる。実際は 2 が入っている。

pi = parse("12.", longest_d[real_p | int_p]);
ASSERT(pi.full); // 止まる


デバッガで追うと、確かにドットの後に数値が無ければ、length はインクリメントされてないんですが、
scanner の first (scan.first) はドット文字の次を指したまま return しています。

length と 実際に進めた幅とが一致しない状態というのは許されるんでしょうか?また、上の二つの
parse で、下は失敗するのはおかしいと思うのですが、勘違いでしょうか?

Win7x64 VC++9 boost1.40.0

255 名前:デフォルトの名無しさん [2009/10/01(木) 14:53:49 ]
>>246
申訳ないですが、その書き方ではエラーを解決出来なかったので
グローバル変数として宣言しましたところ、一応はコンパイルが出来ました。



256 名前:デフォルトの名無しさん [2009/10/01(木) 19:44:19 ]
環境はMac OS X 10.5 & Xcode 3.1 (gcc 4.0)です

PreProcessor Macros でマクロを設定してコンパイルはできたのですが
実行すると#ifdef〜#endifでかこった部分が実行されていません
どうすればよいのでしょうか?

257 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 19:51:09 ]
>>256
#ifdefの行をくわしく

258 名前:デフォルトの名無しさん mailto:sage [2009/10/01(木) 23:39:04 ]
>>256
ifdefで指定してるものがdefされていなかったんでしょう

259 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 00:21:58 ]
unary_functionやbinary_functionってなんのためにどうやって使うんでしょうか?

260 名前:デフォルトの名無しさん [2009/10/02(金) 00:36:59 ]
VS2008SP1なのですが、取りあえずboostを試してみようと思い、
#include <boost/asio.hpp>
をソースに書いてみただけでコンパイル時間が1秒→15秒になってしまったのですが、
こういうものなのでしょうか?

261 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 02:23:05 ]
>>260
ありえん話ではないです。
というかメモリ少ないとかじゃないの?

262 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 02:26:31 ]
または、ソースごとに毎回includeされててpchも使ってないとか。
もちろん、メモリ不足がまず疑われるが。

VS使うならpchは覚えた方がいいな。使ってないなら、だけど。
でかいプロジェクトでBoostバリバリ使ってたりすると、コンパイル時間が普通に
1/20以下くらいになっても不思議は無い。

263 名前:スレ違い、でしょうか…… mailto:sage [2009/10/02(金) 03:53:56 ]
巧く言えないんですが、昔、VC6.0とDirectX7を齧って終わっただけのプログラミングを、今更始めようと思いました。
今の状況は

・持ってるのは、Visual Studio 2005 Standard Edition
・作りたいのは、Windowsのゲーム
・使いたい言語は、C/C++
・使いたいライブラリは、DirectX 8.x、もしくは、DirectX 9.x

こんな具合で

・Visual Studio 2005 に関する初心者向けの情報
・DirectX 8.x or 9.x に関する初心者向けの情報

この二つに関する情報が欲しいと考えています。
本であれば本で、webであればwebで、どんなものがいいのか、教えて頂ければ幸いです。
どうか、よろしくお願いします。

264 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 04:35:08 ]
>>259 ググレカス

265 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 04:41:20 ]
>>263
MSDN



266 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 07:05:42 ]
>>263
VS2008ExpressEditionに移行しちゃってもいいんじゃね、タダだし

267 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 08:53:42 ]
>>254 .で終わると確かにパースの終了位置が変になるね。
是非boostスレを賑わしに来てください。
pc12.2ch.net/test/read.cgi/tech/1251446016


268 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 16:37:32 ]
>>261-262
メモリの空きはまだまだあるのですが、
includeしてるソースを少し弄ってコンパイルすると、また10秒とかマタされます。
pchを使うと確かに早くなりますが、pchを使えない環境だと毎回こんなに待たされているんですかね?
これはヘッダーへ実装も書いてしまうことの、弊害?と考えても間違いないでしょうか?

269 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:01:42 ]
そのままではコンパイルが遅いからpchが発明されたとは考えられないかね?

270 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:28:59 ]
メタプログラムのライブラリだからそうなるのは仕方ないな

271 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:08:17 ]
VC++で簡単なwebクライアントを書いたんだけど、うまく動かない。
誰か教えて

kissho.xii.jp/1/src/1jyou92844.cpp

これを
MyUtil->GetHttpContent( &content_data, &content_size, "yutori7.2ch.net", "/news4vip/dat/1254469638.dat", 1024, 5 );
で呼ぶと、116行目の
select_result = select( 0, &tmp_fd_set, NULL, NULL, &timeout_tv ); // タイムアウト付き待機
でタイムアウトする。

試しに
MyUtil->GetHttpContent( &content_data, &content_size, "jane.s28.xrea.com", "/bbs/dat/1249509078.dat", 1024, 5 );
で呼ぶと、即座にコンテントが返る。


272 名前:271 mailto:sage [2009/10/02(金) 19:09:08 ]
vipのスレをリクエストした時の送出ヘッダをtelnetで

# telnet yutori7.2ch.net 80
GET /news4vip/dat/1254469638.dat HTTP/1.0
Host: yutori7.2ch.net
User-Agent: Monazilla/1.00
Connection: close

として送出しても、当然即座にコンテントが返る。
なんとなくvipのケースではリクエストが完了してない気がするけど、どこがまずいのかよく分からない・・・('A`)


273 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:10:13 ]
普通にコンパイルに1時間以上かかる状況では何秒増減しようと大して変わらん

274 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:25:09 ]
>>268 boostのヘッダーをインクルードしただけではそんなにまたされない。
ヘッダーに実装を書くとテンプレートのインスタンス化がされる場合がある、そのヘッダーをインクルード
しただけでコンパイル時間がのびる。無用なインスタンス化がされないようにヘッダーに実装は書かないほうが良いよ。
テンプレートをtypedefしただけでもコンパイル時間は延びる。


275 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 19:42:30 ]
自分でWeb鯖たてて実験するのが楽なんでない?



276 名前:232 mailto:sage [2009/10/02(金) 20:14:08 ]
>>267
やっぱ変ですよね?
ありがとうございました。

277 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 20:53:23 ]
>254のは初出だと思うけど、これ以外にもSpiritは結構バグあるみたいよ。Treeとか。
V2に期待ってことかね。

278 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 21:03:28 ]
>>269-270
やはりこういうものなのですね
>>274
asioの場合は空のcppへinclude書いただけで10秒近くになってしまいました。
っと今また計ってみたら8秒だた・・・

それでも私のような、書き直してはビルドの初心者にはきついですね。
大人しくpchを使っていこうと思います。
ありがとうございました。

279 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 23:20:55 ]
うわ、asio重たいな。こんなのもあるんだな。
boostは無条件にpchに放り込んでたから気づかなかった。

280 名前:デフォルトの名無しさん [2009/10/03(土) 00:09:21 ]
C/C++に直接は関係ないですが質問させてください。

1の補数、2の補数という言葉がありますが、
なぜこのような名前になっているのか教えてください。
(意味は知っています)

1、2 という数字に意味があるのでしょうか?


281 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 00:34:29 ]
>>280
補数の意味が分かってないじゃん

282 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 03:12:32 ]
まったくだ。
2の補数と単に言った場合、それが2種類あることも分かっていないんだろう

283 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 08:17:37 ]
3進数における2の補数のことは考えなくてもいいと思うけどな。

284 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 09:46:35 ]
>>280
自己解決しました。

1の補数
各桁ごとに1の補数をとる

2の補数
2^nの補数をとる

1と2の意味が全く異なる上、
2じゃなくて2^nのことだし。
酷い用語が万延したものだ。


285 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 09:51:39 ]
文字列についてなんですが
文字列の最後の文字を削除する場合ってどうすればいいんですか?
それっぽい関数が見当たらなかったんですが、皆さんどうやって処理するんでしょうか



286 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 09:56:04 ]
void cut(char *str){
 str[strlen(str)-1] = '\0';
}


287 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 09:56:48 ]
あら、縮まってなかった。


288 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 09:58:49 ]
>>286
ありがとうございます。
文字列の方は、最初から[10]と決めているんですが、この場合動的に管理しないと無理ですか?

289 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 11:50:42 ]
>>288
ポインタそのものは変化しないので静的配列でもOK


290 名前:271 mailto:sage [2009/10/03(土) 12:18:05 ]
自己解決しました・・・(´・ω・`)

291 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 12:52:09 ]
自家発電しました(´・ω・`)

292 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 13:11:49 ]
自殺しました(´・ω・`)

293 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 14:29:41 ]
自乗しました

294 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 15:10:29 ]
自損しました(´・ω・`)

295 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 16:31:37 ]
struct hoge {
inline int operator [] (int i) {
return a[i];
}
int a[10];
}

↑のinlineって生の配列アクセスまで最適化されますか?



296 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:02:32 ]
コンパイラ次第だが期待していい。

297 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:28:55 ]
環境VC++ 2008 Expressです。

配列 
*points1 = メモリ確保した。
*points2 = メモリ確保した。
for ( i = 0; i < numPairPoints ; i ++) {
points1 から始まる配列にxとyを代入する。
points2 から始まる配列にxとyを代入する。
}

コード自体はとても簡単な処理なのですが、
デバッグしていると、i がある程度(デバック実行の度常に同じiの値)増えた後に、
何故かpoints2(のみ)の内容が書き換えられ、メモリアクセスエラーが起こしています。
こういうことが起こる場合にはどこでなんとかすべきなんでしょう?
points1の処理は通ってpoints2が途中でだめなのでコード外の要因だと思うのですが・・・

よろしくお願いします。

298 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:34:10 ]
>>297
points1 の型は何?

299 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 17:37:46 ]
opencvなので簡略化しました。
書いてるコードはこんなんです。

CvMat* points1;
CvMat* points2;
points1 = cvCreateMat(1, numPairPoints, CV_32FC2);
points2 = cvCreateMat(1, numPairPoints, CV_32FC2);
for ( i = 0; i < numPairPoints ; i ++) {
CvSURFPoint* r1 = (CvSURFPoint*)cvGetSeqElem( objectKeypoints, ptpairs[i*2] );
CvSURFPoint* r2 = (CvSURFPoint*)cvGetSeqElem( imageKeypoints, ptpairs[i*2+1] );
//略
points1->data.db[i*2] = r1x;
points1->data.db[i*2+1] = r1y;
points2->data.db[i*2+1] = r2y;
points2->data.db[i*2] = r2x;
}

300 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 18:03:49 ]
>>284
おー昔のコンピュータの数値は整数ではなく
[0..1) の固定小数点数を表していた
と言えば後は分かるだろ


301 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 19:26:00 ]
>>300
[0, 1) のことだったら
2の補数は1の補数と呼ばれなくてはおかしい。

[0, 2) の固定小数点数だとしても、
1の補数の方は各桁の1の補数であることは変わらない。

いずれにしろおかしい。


302 名前:デフォルトの名無しさん [2009/10/03(土) 20:15:38 ]
C言語勉強し始めたド素人ですが質問です
エディタにVisual c++2008使ってるんですが
ファイルを作成する場合、まずはプロジェクトの作成→ソースファイルの作成らしいですが
1つのプロジェクトフォルダに別々のソースファイルを保存することはできないんですか?

303 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:21:36 ]
>>299
opencvと言うのは知らんが、
単純に確保している領域をオーバーしてるんじゃないの?

304 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:30:35 ]
>>302
メニューのプロジェクトから、新規項目の追加とか既存項目の追加とか。

305 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:37:47 ]
>>304
新規項目で別のソースファイルを作れるんですが
ただ、コンパイルするときビルドエラーとかになるんですよね



306 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:43:21 ]
>>302 >別々のソースファイルを
main()を2つ書いてるとか?
もしそうだったら、プロジェクトの追加をするんだ。

307 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:44:49 ]
>>305
エラーを貼ってみて。

308 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 20:55:40 ]
プロジェクト上から見えてるmain文が一つだったらいくつソースファイルがあってもおk

309 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 21:35:36 ]
>>299
何の関数か知らんけど、cvCreateMatの第1引数と第2引数を入れ替えてみそ


310 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:17:49 ]
>>299
OpenCV の使い方に関する話になりそうなんで
 【Intel】OpenCV総合スレ【画像処理】2
 pc12.2ch.net/test/read.cgi/tech/1230511656/
こっちで聞いてみたら?

ぱっとみ cvCreateMat の 第3引数はそれでよいっぽい
第1引数 第2引数 の関係と その後の操作の次元があっているのかわからん
(NxM なのか MxN なのか

311 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:42:45 ]
構造体というものは、配列の範疇に入るんでしょうか?
メモリだけ見れば似たような感じなのですが

312 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:45:10 ]
"構造体"の"配列"もあるからどうかな...

313 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:48:54 ]
普通は範疇には入れないよな。
文脈によるけど。

314 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:50:42 ]
どうせ全部ビット列だと割り切れば同じ扱いをしても違和感ないか。
面白い視点だな。

315 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:50:53 ]
構造体はメンバ間でパディングかかるけど
配列は隙間無で詰めないか?



316 名前:311 mailto:sage [2009/10/03(土) 22:55:02 ]
どこで見たのかは忘れたのですが、構造体を配列と書いてるところがあったので気になって質問させていただきました
もしかしたらサイト管理者の間違いかもしれないので、あまり気にしない様にします。ありがとうございました。


317 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 22:57:44 ]
パディングパディング言うけどさ
その空いた領域にほかのデータが書き込まれる可能性ってあるの?


318 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:00:33 ]
ない


319 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:23:04 ]
ないあるよ

320 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:44:19 ]
パディングって何だと思ってるの? >317
気にしなければならないのは1構造体のサイズ=メンバの合計のサイズにしたければパディング無しにしなければならないって話なんだよ

321 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:44:37 ]
「ほかのデータ」の意味がわからんない

322 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:05:02 ]
うろ覚えだけど構造体は4byteの倍数に合わせるようにうめてるとか聞いたような聞いてないような




323 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:15:43 ]
アラインメントね
あと4バイトとは限らない


324 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:21:25 ]
別のスレで質問したんですが人いなさそうなのでこっちで質問させてください。
visual studio 2008で
それぞれ別のディレクトリに保存した同一ファイル名のファイルを
プロジェクトに追加してビルドすると
未解決の外部シンボルというエラーがでます。
どうしたら同一ファイル名のファイルをビルドできますか?

325 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:24:18 ]
ファイル名を変える



326 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:26:08 ]
>>325
買った参考書に入っていたプロジェクトでは
同じファイル名でビルドできたので
出来ればその設定方法を知りたいんですが

327 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:28:53 ]
プロジェクトをわけ、1ソリューションにまとめてみては?

328 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:29:16 ]
>>326
こっちいくといいよ

Visual Studio 2008 Part 18
pc12.2ch.net/test/read.cgi/tech/1251622158/

329 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:32:49 ]
他の原因でもそのエラーは出るからよくわからんけど
ファイル名が同じだからコンパイル後の出力ファイルが上書きされたって事?
だったらファイルのプロパティで->出力ファイル->オブジェクトファイル名を設定すればどうにかなりそうだけど

330 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:33:53 ]
そもそもクラス名がかぶってるんじゃねの?

331 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:36:45 ]
>>324
そのファイルへのパスちゃんと通ってるかィ?

332 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 00:38:33 ]
>>329
ファイル名を指定したら出来ましたありがとうございます。

>>330
クラス名は被ってますがnamespaceで区別してます

>>331
通ってます


333 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 06:25:57 ]
VC2008でoggライブラリ使ってて遭遇したんですが、
CのライブラリをC++で使ってるときに

if(true返す処理) {
throw
}
Cライブラリの関数呼び出し

というような状態で、例外が投げられませんでした。
C関数とthrowをそれぞれ別な関数に分割したら
思ったとおりに動いたのですが、もしかしてC関数と
例外って一緒に使っちゃダメなんでしょうか?

334 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 09:57:20 ]
例外が投げられないってどういう状態?
C言語部分を通過するthrowは駄目だった気がする。
例えばC言語の関数に渡したコールバックで例外投げた場合とか。

void c_func(void (*callback)()) { callback(); }

void cpp_callback() { throw ○; }
void cpp_func() { c_func(cpp_callback); }

335 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:15:01 ]
>>333
ライブラリ呼び出しで、そのような制限は聴いたこと無いな。sinとか普通に使ってるし。
その問題が起きる最小のコードを提示したほうが回答が得られやすいよ




336 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:26:21 ]
>>334
もうちょっと具体的に書くと、

if(!dir.CheckPath(fileName_)) { //ファイルパスが有効ならtrueを返す関数
 throw "無効なパス";
}
//oggライブライリのファイル開く関数
if( ov_fopen(const_cast<char*>(fileName_), Dst_) ) return false;
return true;

ファルパスが無効なら例外投げるはずですが、投げられずに
ov_fopenに行ってしまい、関数内でアクセス違反起こしてエラーになります。
パスチェックとov_fopenを別々な関数に分けて書くと、思ったとおりの動作をする
ので、処理自体には問題は無いと思います。

337 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 10:37:35 ]
>>336
ov_fopenをelse側に書くとどうなるの?






[ 続きを読む ] / [ 携帯版 ]

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

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