1 名前:デフォルトの名無しさん [2007/01/10(水) 00:00:39 ] 1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14 Visual C++入門者・初心者からの質問を、 お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 。
331 名前:デフォルトの名無しさん [2007/02/06(火) 17:36:36 ] いまだにdllの仕組みが理解できません。 猫でものホームページ見ながら作ってみたんですが dllを作った時のヘッダを含めて かつその時出来たlibファイルを #pragma comment(lib,"〜.lib) か、リンカの設定でリンクしないと使えないのは libを通してやらないと、dll内の関数を呼び出すことは出来ないと いう事なんでしょうか。 LoadLibraryを使っても意味無かったので、よくわからないです。 どなたか教えて頂ければ幸いです。 VS2005というIDE環境で勉強してるから楽出来てる分その楽 出来ている理由が解って無く勉強不足になってると自らは思います。
332 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 17:41:21 ] >>330 「静的」「動的」の意味が分かっていないような気がする。 コードの中で int i; char String[80]; とかやるのが「静的確保」。これらの変数は実行ファイルがメモリ上に ロードされた時点で既に存在していて、終了と同時に消滅する。 グローバル変数だろうが(クラスの)メンバ変数だろうがそれは同じ。 したがって delete/delete[] は必要ない。
333 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 17:48:03 ] >>331 LoadLibraryで読み込んだDLLの関数を呼び出すには、 GetProcAddressで関数のアドレスを取得するんだよ。
334 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 17:49:34 ] >>331 VS2005で「DLLを作る」と言ったときには自動的にLIBファイルも作られるけど、 この2つは完全に別種のもの。中身は一緒、ただ使い方が違う。 LIBファイルは静的リンク用のファイル。 自分の実行ファイルの中に(コンパイルの時点で)取り込んでしまって、 あたかも自分の書いたコードと同じように使えます、というもの。 だからLIBを組み込むときにはリンカなり#pragmaなりで予め設定をして、 コンパイルのときにリンクすることを明示しなければならない。 DLLは動的リンク用のファイル。 一般的には、まずLoadLibrary()でDLLファイルを読み込み、 (そこでもし成功したなら)次にGetProcAddress()で DLLの中に埋め込まれた関数を取り出して使う、 最後にFreeLibrary()でDLLを自分のプログラムから取り外す、 という段取りを踏む。 コンパイル時には存在しなくても構わない、実行時にあればいい。
335 名前:デフォルトの名無しさん [2007/02/06(火) 17:55:16 ] >>332 うーんということは私が知らず知らずのうちに どこかで動的確保しているということでしょうか?
336 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 18:02:34 ] >>334 >VS2005で「DLLを作る」と言ったときには自動的にLIBファイルも作られるけど、 このLIBはインポートトライブラリ。 LoadLibraryやらGetProcAddressやらメンドクサイ処理をしてくれる短いモジュール。 これを静的にリンクすればDLLの呼び出しが簡単に出来る。 インポートトライブラリがあるなら極力使ったほうが楽。
337 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 18:05:31 ] インポートトライブラリ インポートトトライブラリ インポートトトトライブラリ
338 名前:320 [2007/02/06(火) 18:12:06 ] スレッドオブジェクトの配列をグローバル変数にしてるんですが これはまずいですか?せめて原因をつきとめたいです
339 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 18:12:57 ] >>335 動的確保はスタックに積むケースとnewやmallocなどでヒープから確保するケースがある。 静的確保はstaticで定義した場合(明示的にstaticをg使わないケースも含む) クラス内のメンバー変数はクラスがどう生成されたかによる。 >>336 誤字をさらにコピーしてしまったか、インポートライブラリだな。
340 名前:331 mailto:sage [2007/02/06(火) 18:44:51 ] >>333 さん >>334 さん >>336 さん ご教授ありがとうございました。 GetProcAddress()FreeLibrary()ってのも必要なんですね。 それと、dll作った時のlibはインポートライブラリなんですね。 「プログラムはなぜ動くのか」って本を読んだにもかかわらず 流し読みで頭に入っておらず再読したらちゃんと書いてありました。 はぁ、馬鹿だな俺って。
341 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 19:56:07 ] SendMessageであるウィンドウにDボタンを送りたいのですが、 SendMessage(hwnd, このあとをどうすればよいのでしょうか。 ご教授願います。
342 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 20:06:34 ] >はぁ、馬鹿だな俺って。 それに気がつくことができれば、今後はもっと「馬鹿」じゃなくなるでしょう。 そうやって向上できる人間が、「賢い」のです。 #で、「ご教示」ですね。 >>320 ソース公開しちゃった方が話が早そうですね。
343 名前:デフォルトの名無しさん mailto:sage [2007/02/06(火) 20:07:43 ] >>341 Dボタンってなんですか? マウスクリックのイベントを送りたいなら、Spy++でどういうパラメータを渡せばいいか覗いてみると宜しいかと。
344 名前:317 mailto:sage [2007/02/06(火) 21:25:08 ] >>319 フラグを使うのは普通なんですね。 ありがとうございました。
345 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:17:13 ] >>320 いろいろ言われてるけど、とりあえず 配列利用時に、添え字がオーバーアクセスしてないか確認するべし。 > 原因を突き止めたい デバッガを上手に利用しましょう。 ある特定のメモリ空間にアクセスした時にbreakかけることも出来たはず。 詳しくは「ブレークポイント」をMSDNで調べてくれ。
346 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 00:59:43 ] 基礎的すぎる質問なんですが、 ダイアログエディタで適当にあれこれコントロールを張ったとき、 VC++2003でビルドしたプログラムを98SEで走らせると、 コントロールのマルチバイト文字がすべて文字化けする。 エディットボックスに直接マルチバイト文字入れても同じく。 メニューバーやステータスバーは文字化けしない。 文字はTCHAR系統を使い、ビルドした結果はすべてwchar_tになっているはず。 このような状況で、文字化けさせない用にする方法を教えてくださいませんでしょうか?
347 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 01:47:02 ] 9xはUNICODE対応していないから、MSLUを使うか非UNICODEにするかしないとだめだよ。
348 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 02:07:28 ] 2000とXPは内部コードはUnicodeだけど98とかはどうなんだろう。 localeまわりかな?Unicode適応しないでビルドしたらSJISになっていけるのかな?
349 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 02:23:29 ] >>347 なるほど… わかりました。 ありがとうございました。
350 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 09:03:22 ] >>346 マルチバイト文字(列) と ワイド文字(列) の意味を 使い分けられて無い気がするぞ。 マルチバイト文字列は char* で ワイド文字列は wchar_t* だ。
351 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 10:14:21 ] そもそもダイアログでコードページ932で作ってたりして
352 名前:デフォルトの名無しさん [2007/02/07(水) 10:18:25 ] クラスのメンバ変数についての質問です グローバル変数としてビュークラスの外で宣言したクラスの メンバ変数は0や空文字で初期化されてるんですが そのクラスをビュークラスのメンバとして宣言するとそのクラスの メンバ変数が初期化されないのはどうしてですか?
353 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 10:26:03 ] >>352 C++スレ行くか C++の入門書でも読んで勉強してください
354 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 10:31:05 ] >>353 わからないんですね
355 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 10:36:05 ] 入門書にしっかり書いてある
356 名前:デフォルトの名無しさん [2007/02/07(水) 10:39:04 ] pc10.2ch.net/test/read.cgi/tech/1167476845/ ではここで教えてください
357 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 11:03:34 ] グローバル変数はコンパイル時に場所が決まってるから
358 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 16:30:17 ] というより、C/C++の規格でそうなると定められているためと言ったほうがいいと思う。
359 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 16:33:10 ] どうだろね。 仕組みから入ったほうが、そう決まってるからそうなんだ、より納得いくかもしれんし
360 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 17:01:56 ] 実装がそうだからそれが正しいという保証はどこにもない
361 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 17:25:43 ] 逆にこれは実装が先にあって仕様が追いついた例でもあるな。 構造体のコピーも似たようなもの。
362 名前:デフォルトの名無しさん mailto:age [2007/02/07(水) 18:49:23 ] VC++7.0でライブラリファイルをリンクする方法を教えてください winsockライブラリを使いたいのでお願いします
363 名前:デフォルトの名無しさん mailto:sage [2007/02/07(水) 19:23:53 ] #pragma comment(lib, "Mswsock.lib")
364 名前:269 mailto:sage [2007/02/08(木) 08:10:55 ] 269です。たびたび申し訳ありません。 SDK入れてWindowsアプリが作れるようになったんですが、ダイアログやアクセレータ等の リソーススクリプトファイル(.rc)をエディットするResEditorがついてないみたいなので断念しそうです。 というかそれが目的だったので。 Windowsフォーム(.h)は作れるみたいですがどうしていいのかわかんないです。 Visual Studio 2005 Academic Editionだったらリソーススクリプトファイル(.rc)の作成は可能でしょうか? 可能ならば購入したいと思います。よろしくお願いします。
365 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 10:01:56 ] MSに訊け
366 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 10:07:23 ] >>363 ありがとうございます
367 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 10:35:00 ] >>364 可能だがフリーのエディタもあるよ
368 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 11:04:04 ] メモ帳でええがな
369 名前:デフォルトの名無しさん [2007/02/08(木) 11:50:13 ] VisualStudio2005C++ExpressEditionにて #include "stdafx.h" #include"stdio.h" int _tmain(int argc, _TCHAR* argv[]) { FILE *fp=fopen("d:/test.txt","rw"); というコードを書きました。 FILE文付近で「〜Expression:(Invalid file open mode",0)〜」 というダイアログボックスがでます。 CRTセキュリティ強化されたためということですが、このセキュリティを 弱くしたいと思います。どのようにすればよいですか?
370 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 11:50:39 ] WinSockのAPIを使ってphpから文字列を取得することはできますか?
371 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 12:12:23 ] >>369 セキュリティ強化用の関数が追加されたけど 標準関数の仕様はかわらないのでは?
372 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 12:18:22 ] >>370 プロトコル次第
373 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 12:20:17 ] >>372 httpなんですが あとサーバーに送る文字列の改行コードは\nで大丈夫でしょうか?
374 名前:デフォルトの名無しさん [2007/02/08(木) 13:09:22 ] >>371 標準関数の仕様はかわらないのでは? たぶんそうだと思うのですがうまくいかないです。
375 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 13:18:46 ] エラー通り"rw"が悪い
376 名前:デフォルトの名無しさん [2007/02/08(木) 14:04:09 ] >>275 VisualStudio2003だとうまくいくのですが、 構文的にrwなんてつけたらだめなのですか?
377 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 15:05:50 ] unicodeかなんかじゃないの?
378 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 15:56:14 ] "rw" なんてのは無い
379 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 16:37:09 ] MSDNこういう例ものってるし "rw" もあるだろ msdn2.microsoft.com/ja-jp/library/yeby3zcb (VS.80).aspx fopen("newfile.txt", "rw, ccs=<encoding>");
380 名前:デフォルトの名無しさん [2007/02/08(木) 17:11:52 ] 多分すごい有名な 「新VisualC++6.0入門ビギナー編 林春比古署 ソフトバンク社」 を使って今勉強中なんですが、 241ページのサンプルプログラムで、 CPenクラスのオブジェクトのポインタ、’oldPen’ってゆうのを、 ’旧ペン’と銘打って保存って書いてありますが、 これをする意味がわかりません。 わざわざポインタでなぜ確保しているのでしょうか? pDC->SelectObject(&CPen型Object)で選択して書くだけなのに、 別に’旧ペン’を保存しておく必要があるのでしょうか? 私が簡単に確認した程度では、 oldPen 自体設定しなくても実行可能でしたし、 最後に’旧ブラシに戻す’ってゆう作業もなくても問題ありませんでした。 他にもいろいろ記述してoldPenの有用な使い方を検証しましたが、 やればやるほど意味がないのではという考えに傾きます。 大変限定的な質問ですが、 よければ本を持ってる方、もしくはよく知ってらっしゃる方でわかる方がいれば 教えていただけないでしょうか?
381 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 17:21:08 ] MSDNのサンプルだとこんな感じだね void CMyView::OnDraw( CDC* pDC ) { CPen penBlack; // Construct it, then initialize if( newPen.CreatePen( PS_SOLID, 2, RGB(0,0,0) ) ) { // Select it into the device context // Save the old pen at the same time CPen* pOldPen = pDC->SelectObject( &penBlack ); // Draw with the pen pDC->MoveTo(...); pDC->LineTo(...); // Restore the old pen to the device context pDC->SelectObject( pOldPen ); } else { // Alert the user that resources are low } }
382 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 17:24:47 ] forums.belution.com/ja/vc/000/049/00.shtml メモリ上のDCは元に戻すべきか?
383 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 17:24:47 ] >>380 ttp://msdn2.microsoft.com/en-us/library/ms533272.aspx >An application should always replace a new object with the original, default object after it has finished drawing with the new object.
384 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 17:28:50 ] げ、マルチか
385 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 18:10:14 ] だな pc10.2ch.net/test/read.cgi/tech/1164787254/200-
386 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 18:56:26 ] >>379 VS2005でソースみてみな
387 名前:デフォルトの名無しさん [2007/02/08(木) 20:16:15 ] プログラムからtabindexの設定をするには?
388 名前:デフォルトの名無しさん [2007/02/08(木) 20:20:28 ] >>369 >>379 C/C++の標準規格としては"rw"なんてありません。 標準で認められているのは"r", "w", "a", "r+", "w+", "a+"及び それにバイナリモードのbを2-3文字目(+とは順不同)に入れたもののみです。 勿論Visual C++はViusal C++で色々と独自に拡張はしていますが。
389 名前:デフォルトの名無しさん [2007/02/10(土) 17:51:19 ] WinSockでhttpsを扱えますか?
390 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 18:07:09 ] 扱えるかどうかと言えば扱える ソケットとプロトコルは関係ない 要はアプリケーションがWinSockを使ってSSL通信できるように作ればいい
391 名前:デフォルトの名無しさん [2007/02/10(土) 18:49:44 ] >>390 ありがとうございます少し調べてみます
392 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 01:39:25 ] 【初心者歓迎】C/C++室 Ver.34【環境依存OK】 で聞いたらスレ違いという事でここでオナガイシマス VC6ですCtrl + Fで検索ダイアログを開いた時過去に検索した文字が出せますが 便利ですが間違えた検索単語を間違えたときの文字も残っています 一度まっさらにするにはどうしたら良いですか?
393 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 06:19:07 ] パソコン初心者だろうか?
394 名前:デフォルトの名無しさん [2007/02/11(日) 09:42:36 ] WinFormsのTextBoxで、 テキストの行がコントロールからはみ出たら最終行がきちんと見えるように オートスクロールさせたいのですが デザイナ内にもそれらしき設定はなさそうですし、 マニュアルでプロパティを調べてもそれっぽいものが見当たりません。 どうしたらいいでしょうか? AutoScrollOffsetってのがそうですか? なんかPointでスクロール先を指定するみたいですが、 もしこれがそうなら使い方が良く分からないので教えてください。
395 名前:394 mailto:sage [2007/02/11(日) 10:10:49 ] とりあえず格好悪いですが textBox->SelectAll(); textBox->ScrollToCaret(); でできました。
396 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 12:27:54 ] ヒント ・オートスクロールが有効になっている場合、自動的にキャレットのある位置が表示されるようにスクロールされる ・TextBox::SelectionStartが現在のキャレットの位置
397 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 14:46:27 ] 392ですがどうしたら消せる?
398 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 15:02:24 ] レジストリ辺りにでも保存されてるんじゃねーかな。 もしくは再インストール。
399 名前:デフォルトの名無しさん [2007/02/11(日) 23:32:04 ] Lap[Count - 1] + Step > (Lap[Count] = GetTickCount()) );/* case 2: の timeGetTime の部分*/ Stepが0以外だとStepに関わらず、このループを抜けるのに15ms以上もかかってしまいます。(Lap配列の数値を見て) 最初のtimeGetTimeの10万回ループは47msで遅いわけでもないですし、そもそもtimeGetTimeだとうまく動くのです。 どうしたらよいのでしょうか。
400 名前:デフォルトの名無しさん mailto:sage [2007/02/11(日) 23:43:08 ] いったいそれのどのあたりがループなんだ?
401 名前:399 [2007/02/11(日) 23:50:06 ] >>400 ソースはってませんでした。 deaikei.biz/up/up/4549.zip.html pass:cpp #pragma comment(lib, "winmm.lib")を追加したら、 timeGetTime()とGetTickCount()の両方でうまく時間が出てこなくなってしまいました。 元に戻してもダメなので、ビルドする度に違うのかもしれません…
402 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 00:07:11 ] まず、ビジーループ氏ね それに、timeGetTimeのNTでの規定精度は「5ms以上」 ついでに、強制コンテキストスイッチの間隔もある。
403 名前:399 [2007/02/12(月) 00:29:54 ] >>402 試しに比較したかっただけなので、ループの方は勘弁してください。 timeBeginPeriodで精度を1msに調整しても結局GetTickCountで同様の症状になってしまいます。 コンテキストスイッチの待ち時間は10msを超えるようなものでしたっけ?
404 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 02:17:41 ] GetTickCountのヘルプ読んだか? 家のPCだと100ns単位で156250、約16ms程度の解像度だぞ。
405 名前:デフォルトの名無しさん mailto:sage [2007/02/12(月) 08:24:06 ] 普通1/60秒だからそんなもんだね。
406 名前:399 mailto:sage [2007/02/12(月) 19:24:33 ] >>404-405 ようやく理解できました。 Sleep(0)ループのようにタイマー割り込みを待つのですね… GetSystemTimeAdjustmentで測ってみたら15.625msでした。
407 名前:デフォルトの名無しさん [2007/02/13(火) 12:47:54 ] CString型のメンバ変数strに文字列をいれていたのに 突然中身がなくなるというかデバッグ時にみると不適切なptr となってアドレスは0を指しているようでした 関数から関数を呼び出してさらに関数をよびだしていきどんどん奥にいくと この現象が起きたのですが これはスタックオーバーフローというものですか? 解決策を教えてください
408 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 12:49:09 ] >>407 関数一個ずつ丹念にデバッガで追っていくのが無難かな。 スタックオーバーフローにしろ領域破壊にしろ、どっかで誰かがなんかやってるだろうから。
409 名前:デフォルトの名無しさん [2007/02/13(火) 13:00:34 ] >>408 ありがとうございます!! strncpyで領域破壊を起こしていました すごく助かりました!!
410 名前:デフォルトの名無しさん [2007/02/13(火) 14:14:12 ] 私はもともとC++Builder出身なのですが VB6で、あるアプリを作成しています。 このアプリは、主処理のほとんどが MS.NET Framework1.1 VC++.NET で生成されたDLLで行われています。 このDLLをステップ実行やインスペクタでデバグしたいのです が、親アプリがVBなので、どうやってデバグしたら良いやら 困り果ててます。 どなたかVC++のDLLのデバグ方法を伝授してください… できれば簡単なやつで。
411 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 14:50:21 ] ソースとデバッグ版DLLとpdbファイルがあればおk
412 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 14:54:59 ] ソース、デバッグ版DLL、pdbファイルあります! もちょっとだけ具体的に教えてもらえないでしょうか…
413 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 15:32:24 ] それって開発環境そのまま? 途中で止めてアタッチする手もあるが、環境あるなら DLLのデバッグ開始すると、実行時にEXE指定しろって言ってくるから それでそのEXE指定すればいいと思う。 デバッグしたいとこはブレークポイント設定しておけばいいし。
414 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 15:35:06 ] もしVB側もデバッグしてるのなら、関数呼び出し時にステップインで DLLとPDBが同じとこにあればソースの場所聞いてくると思うので そこでソース選べば追えると思うけど、、、 VB呼び出しはもしかしたら違うかもしれん、、、 C/C++からの呼び出ししかやったことないんで。 もしだめなら試すから言ってくれ
415 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 18:25:23 ] >>413-414 丁寧なご回答ありがとうございます。 でもまだちょっと分かってないです… DLLですが、メイク時に実行すると 「ActiveXコントロールテストコンテナ」というのが 出ます。 これかのことか!?と思ったのですが、EXE指定はできないっぽいです。 >>414 さんの方法は今がんがってる最中です…
416 名前:デフォルトの名無しさん [2007/02/13(火) 20:56:40 ] 質問です。 学校で使っている描画のプログラム(?)をVC++6.0で使いたいと思い、 ヘッダーファイルとライブラリファイルを Microsoft Visual Studio\VC98 のIncludeフォルダとLibフォルダにそれぞれ入れ、 プログラムをコンパイルしたのですが、 warning LNK4003: ライブラリの形式が無効です; ライブラリは無視されます とエラーになってしまいます。 これと同様のことをBCC5.5でしても問題ありませんでした。 何か間違っているところがあれば是非教えてください。
417 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:01:20 ] ライブラリがBCC用なんだろ。
418 名前:418 mailto:sage [2007/02/13(火) 21:40:29 ] >>417 Win32 Static Libraryでプロジェクトを作りそこにライブラリソースを追加しビルドしました。 そしてできたライブラリファイルで再び試してみると、 ライブラリの形式が無効です このエラーはでなくなりましたが、 LNK2001 :外部シンボル"関数名"は未解決です このエラーは消えませんでした。 ライブラリファイルの作り方もよくわからなかったのですが合っているでしょうか?
419 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 21:41:53 ] "関数名"が、そのライブラリに入っているべきものなら、 どっか、あってないんだろ。
420 名前:デフォルトの名無しさん mailto:sage [2007/02/13(火) 22:36:39 ] .NETでダイアログベースで作ってます。 CRectとGetWindowRectを使用して自身の座標を得ることはできたのですが 自身と関係ないWindowの座標を得る場合にはどうしたらいいんでしょうか?
421 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 00:22:20 ] GetWindowRectだな。 必要とするウィンドウのハンドルを取得するべし。。 .NET Frameworks だけじゃ無理な気がしたので、WinAPI を使いましょう。
422 名前:デフォルトの名無しさん [2007/02/14(水) 12:19:22 ] エディットコントロールにintの中身を表示させるにはどうしたらいいんですか? 文字列は"”でできました。 変数だけ書いたらエラーでました。
423 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 12:33:45 ] 釣れますか?
424 名前:デフォルトの名無しさん [2007/02/14(水) 14:47:48 ] 編集制御->文字列 = 文字列にな〜れ(数値);
425 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 16:27:57 ] >>420 なぜ.NETでCRectとGetWindowRectが出てくる?
426 名前:デフォルトの名無しさん [2007/02/14(水) 17:05:59 ] VC6.0でベースがDIALOGか、SDIで出力結果をDOS窓に出す方法はあるんですか。 はじめからDOS窓アプリにしないとだめですか?
427 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:13:21 ] AllocConsole?
428 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:18:42 ] VC++プログラマーちょっとこい!! ex17.2ch.net/test/read.cgi/news4vip/1171440924/
429 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:31:05 ] CTypedPtrList<CObList, VALUE*>のSeqValueListを CTypedPtrList<CObArray, VALUE*>にする時ってどうすればいいんでしょうか? 下のがソースなんですが、やり方が良くわからない。。。orz CItemInfo::~CItemInfo(){ int iCount; POSITION pos; VALUE *pValue; m_pValueList = &m_SeqValueList; iCount = (int)m_pValueList->GetCount( ); pos = m_pValueList->GetHeadPosition( ); for( int i=0; i<iCount; i++ ){ pValue = m_pValueList->GetNext( pos ); delete pValue; } m_pValueList->RemoveAll(); m_pValueList = &m_ParValueList; iCount = (int)m_pValueList->GetCount( ); pos = m_pValueList->GetHeadPosition( ); for( int i=0; i<iCount; i++ ){ pValue = m_pValueList->GetNext( pos ); delete pValue; } m_pValueList->RemoveAll(); }
430 名前:426 [2007/02/14(水) 17:36:11 ] AllocConsole(); freopen("con", "w", stdout); printf("hello console\r\n"); //FreeConsole(); でできました。すみません。
431 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 17:54:01 ] エディタの背景を黒にカスタマイズしたいのですが、どこにもそんな項目がありません ちなみにヴァージョン6.0です