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


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

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



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

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

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

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

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

747 名前:デフォルトの名無しさん mailto:sage [2009/05/31(日) 01:45:45 ]
プログラミングに限らず大抵の分野について初心者用の本ばかりなんじゃないの。
中級向けの本なんて作るの大変なうえに売れないし、作る人いないんじゃないかな。
雑誌でちょっとずつ高度な話を連載して書籍化ってパターンがあるけど雑誌が売れなくて消えてく時代だし。

748 名前:デフォルトの名無しさん [2009/06/03(水) 00:07:40 ]
すいません。教えてください。
#include <string>
#include <iostream>
using namespace std;

class User
{
private:

public:
User()
{
cout << "デフォコン" << endl;
}
};

int main()
{
User x;
User y();
return 0;
}

User y();でデフォルトコンストラクタが呼ばれないのは何でですか?

749 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:16:32 ]
>>748
User型の戻り値を持つ関数yのプロトタイプ宣言とみなされてるとか

750 名前:デフォルトの名無しさん [2009/06/03(水) 00:25:40 ]
>>749
ありがとうございます
cout << typeid(x).name() << endl;
cout << typeid(y).name() << endl;
してみたら、さらに納得がいきました。

てか、よんでる入門書にそういう記述があったので・・・
本の正誤表に出てるかもしれないですね。

ありがとうございました

751 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 00:40:11 ]
>>750
てか、このパターンはぱっと見関数宣言と変数定義の区別が
つかないような気がするのでコンパイラによっては(VCでもバージョンによっては)
動作が異なるのかも知れない

C++相談室スレとかにいけば、どう解釈するのか正しいのか教えてもらえるかも

752 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:10:44 ]
Visual Studio 2008付属のVisual C++で、ダイロアグベースのMFCアプリケーションを
作り始めてみました。

エディットコントロールの使い方について教えてください。

エディットコントロールの使い方として、
・変数の追加で、カテゴリControlの変数を追加する。
 →GetWindowText()で内容を取得する。
・同様にカテゴリValueの変数を追加する。
 →UpdateData()で変数を更新して内容を取得する。
・変数を追加しない。
 →GetDlgItem()とGetWindowText()を使って内容を取得する。
このようにいくつか方法があると思っています。

それぞれの方法の長所や短所、使い分ける時の基準、みたいなものはありますか?

753 名前:750 [2009/06/03(水) 01:18:26 ]
www.geocities.jp/bleis_tift/cpp/defaultctor.html
こんなの見つけました。
コンパイラによっては警告を出してくれんですね

ちなみに私が使ってたのはVC++ 2008です

ありがとうござました
いろいろ氷解しました

754 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 01:26:20 ]
>>753
リンク先にもあるようにVisual C++は警告を出すコンパイラなんだけど気付かなかった?
そうなら、警告もエラーと同じくらいよく目を通したほうがいいよ。

755 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 06:18:35 ]
>752
数値の場合はDDX DDVが便利。
ただ複雑なことはできないのとUpdateDataが面倒
文字の場合は直にGetWindowTextが手っ取り早い
毎回GetDlgItemが面倒ならメンバ変数にしておく。
あとCEditのメンバ関数と使い分け



756 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 06:21:25 ]
と思ったけどDDX DDVの中味を自作する方法もあったな

757 名前:デフォルトの名無しさん [2009/06/03(水) 19:24:40 ]
入門書を一通り読み終えて
簡単なアプリを作りながらVisualC++の使い方を覚える本をはじめたのですが
最初の方で
String^ msg = now.ToString();
という記述が出てきました。
この^は見た覚えがないのですがなんか演算子なのですか?

今この書き込みかいててちょっと思いついたんですけど
もしかしてクラス名が
String^
ってことはないですよね?

758 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:39:37 ]
それは、C++のようでC++でない.NET用の拡張C++/CLIの構文。

759 名前:757 [2009/06/03(水) 19:41:40 ]
ありがとうございます。

すいません。取り除いてコンパイルしてエラー文検索で見つけました。
msdn.microsoft.com/ja-jp/library/ms235261(VS.80).aspx
ですね。

760 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 19:51:48 ]
どっちみちC++とは違うものだし、.netがやりたいなら普通はC#にする。

761 名前:デフォルトの名無しさん [2009/06/03(水) 20:08:17 ]
satou


762 名前:757 [2009/06/03(水) 20:51:42 ]
>>760
C++を選んだのはオブジェクト指向でネイティブアプリが作りたかったんですけど
CLIはネイティブじゃないんですよね。

C++でwindowsのネイティブアプリを作るとなるとVisual Studio 2008 Standard Editionあたりを買って
MFCで作るのですか?

そもそも見た目をグラフィカルに配置して、モデル部分やボタンなどのアクションをC++で書くというのを
イメージしてたのですが、製品版買えば、MFCアプリをフォームエディタでのようにペタペタはって
作れるのですか?

アマゾンでC++ MFCを検索すると2003年から新刊出てないようなのでMFCってもういまさらって感じですか?

何かをプラスでインストールしないと動かないアプリっていうのがいやなんですよね。

いろいろ聞いてすいません・・

763 名前:757 [2009/06/03(水) 21:12:16 ]
なんか色々あってややこしいですね・・・

いろいろ見てみたけど
勉強するならWin32APIですかね?


764 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:13:51 ]
とりあえずネイティブは無料版でも扱える(MFCは有料のみ)
俺的考えはビスタ以降は標準で.NETがインストールされてるからそこまで嫌う必要はないと思ってる

765 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:25:55 ]
757はなにをやりたいのかさっぱり分からん
例えばゲーム作りたいならC++とネイティブとDX、
ブラウザとかのツール系なら.NETのほうが開発しやすいし、
win系OS全部に対応させたいならWin32APIのみで開発するし
目的によって勉強する言語は変わってくるんだがなー



766 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 22:25:24 ]
mfc使ってみようと思う時はribbon触りたくなった時くらい

767 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:06:10 ]
そのリボンもWindows 7からWin32 APIの仲間入り。

768 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:41:00 ]
ループを抜け出すときにはbreakを使いますが、これを自分で手定義した関数から実行することは出来ますか?
void aaa()
{
break
;}
int main(){
for(int i=0;i++;i>5)
{
aaa()
;}
return 0;}
のような感じです



769 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:44:04 ]
不可。

770 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 23:52:55 ]
>>769
ありがとうございます

771 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:39:32 ]
VC++2005でCStringを使おうとすると以下のエラーが出てしまいます。
何か設定など必要なのでしょうか?

error C2065: 'CString' : 定義されていない識別子です。

772 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 00:48:17 ]
#include <tchar.h>
#include <atlstr.h>

773 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 01:01:37 ]
>>771
VC++2005eeじゃね?
有料版じゃないとMFCは使えないよ

774 名前:771 mailto:sage [2009/06/04(木) 04:55:54 ]
>>772様 >>773様 御回答ありがとうございます。

VC++2005eeにて文字列変数のコピーをするにはどうしたらよいのでしょうか?

775 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 07:11:09 ]
lstrcpy



776 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 07:28:37 ]
文字列変数というのがchar*なら>>775

#include <string>してstd::string使うとか。
C++/CLIならSystem::Stringもあるけどまあ別物か

777 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 08:11:08 ]
もしかして標準C/C++の基本がまだできてないなら
C/C++スレへ行け

778 名前:757 [2009/06/04(木) 11:55:50 ]
>>764
C++と.NETだとC++のランタイムがスタティックリンクができないので
.NETが入ってたとしてもC++のランタイムのインストールが必要って聞いたんですけど
そんなことないですか?


プロジェクトのプロパティでランタイムライブラリを
マルチスレッド デバッグ (/MTd)
に変えてリビルドしたら
コマンド ライン error D8016 : コマンド ライン オプション '/MTd' と '/clr:pure' は同時に指定できません。
と言われました。
マルチスレッド デバッグ (/MT)でも同じ感じです。

>>765
作りたいのは「ブラウザとかのツール系」です。
.NETなのかな〜

まあ、両方ザックリ本読んで考えて見ます。




779 名前:デフォルトの名無しさん [2009/06/04(木) 13:44:07 ]
RPGゲームを作っています

main関数の中でとりあえず作ってみたのですが、
これをそのままクラスにするいい方法はありますか?
コード自体はたいした量ではないので、作り直すのは簡単なのですが
後学のためにも教えてください。

それとも戦闘画面をメインにし、フィールドを歩くときは別フォームを呼び出したりするほうが良いでしょうか


780 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 14:11:49 ]
地道に作り直せ

781 名前:デフォルトの名無しさん [2009/06/04(木) 14:29:42 ]
VS2003で作成されたActiveXコントロールの更改をしているのですが、
最適化オプションが、
・プログラムサイズ
・実行速度
の時は問題ないのですが、
・無効
・最大限の最適化
・カスタム
にして、リビルドを行うと、Regsvr32で以下のエラーが発生します。
「LoadLibrary("○○.dll")に失敗しました。指定されたモジュールが見つかりません。」
原因が全くわかりません。
どなたか原因をご存知の方教えて下さい。

782 名前:デフォルトの名無しさん [2009/06/04(木) 14:41:48 ]
>>780
うーん、残念です
ありがとうございました〜

783 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 15:18:13 ]
>>781
Dependency Walker などを使って依存しているライブラリに違いが
ないか調べてみるとか

784 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 16:12:10 ]
元々自分で作った物じゃないから作りを理解してないんだろ

785 名前:781 [2009/06/04(木) 18:13:26 ]
>>783
素晴らしいToolの紹介をありがとうございました。

最適化無効でビルドされたDLLと最適化実行速度でビルドされたDLLを
調べてみたところ、Regsvr32が失敗する方(最適化無効)で開けないDLLがあるというようなエラーが出ました。
そのDLLをプロジェクトに配置してみたら、ビルド後イベントのRegsvr32が成功し、エラーはなくなりました。

リビルドではエラーはでなくなったのですが、コマンドでRegsvr32を実行すると、
やはり同様のエラーが出て登録はできません。(リビルド時に登録されたDLLを登録解除もできません。)



786 名前:781 [2009/06/04(木) 18:15:00 ]
続きです。

これは何がいけないのでしょうか…?

引き続き、ご存知の方教えてください。

787 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:55:51 ]
class Test1
{
virtual ~Test1() = 0 {}
};
class Test2
{
virtual ~Test2() = 0 {}
};
class Test3 : virtual public Test1, virtual public Test2
{
virtual ~Test3() = 0 {}
};
これをコンパイルすると、
warning C4505: 'Test3::~Test3' : unreferenced local function has been removed
という警告が出るのですが、何が問題なんでしょうか?

788 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 18:58:19 ]
>>785
気になるのはDLLの配置場所かな

確かDLLのロードは
- 環境変数PATHで指定されたディレクトリ
- exeのある場所
- カレントディレクトル
などを参照したと思うけど、
VC上からビルドして実行すると、たまたまカレントディレクトリが上記の <project>
になるので、DLLは <project> 直下においても読み込んでくれる
しかし、コンソールから実行する場合、カレントディレクトリやPATHに注意しないと
うまくロードされないとか

789 名前:781 [2009/06/04(木) 19:25:52 ]
>>788
まさにその通りでした。配置場所をバイナリファイルと同じ場所に配置することで解消しました。
(一層上のプロジェクトファイルに配置してました。)

本当にありがとうございました。

ただ、最適化オプションの違いでエラーになったり、ならなかったりするのが
不明のままなのが気になりますが…。

790 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 19:44:00 ]
C++初心者です。
TextBoxを画面に表示したいんですが上手く作成できません。
プロジェクト作成でWIN32を選択してからテキストボックスを作りたいと思っています。

TextBox textBox1;
textBox1 = gcnew TextBox;
textBox1->Location = Point(100, 16);
Controls->Add(textBox1);

をソースに追加したのですが

error C2065: 'TextBox' : 定義されていない識別子です。
error C2146: 構文エラー : ';' が、識別子 'textBox1' の前に必要です。
error C2065: 'textBox1' : 定義されていない識別子です。
error C2065: 'gcnew' : 定義されていない識別子です。
error C2146: 構文エラー : ';' が、識別子 'TextBox' の前に必要です。
error C2227: '->Location' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。
error C3861: 'Point': 識別子が見つかりませんでした
error C2065: 'Controls' : 定義されていない識別子です。
error C2227: '->Add' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
型は ''unknown-type'' です。

というコンパイルエラーが出ます。
テキストボックスはフォームでないと作成できないのでしょうか?
環境はMicrosoft Visual C++ 2005です。

791 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:02:55 ]
いろいろ間違いすぎてどこから説明したものやら・・・
とにかく最初から最後まで間違ってる

792 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 21:32:30 ]
>>790
そのTextBoxは.NETのWindows Formsの一部。
CLRプロジェクト以外では使えない。
おとなしく.NET Frameworkの世界にいなさい。

793 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:08:25 ]
一体どこからそういう情報もってきてんだ?
情報仕入れたとこに全部書いてるだろ

794 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:09:20 ]
入門書を4〜5冊はやらないと全体が見えないよな

795 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:11:38 ]
>>793>>778にレスね



796 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:17:58 ]
VC6 での質問です
変数の値が変更された時にブレークポイントがひっかかるようにする方法って
どのようにすればできるのでしょうか?

797 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:41:39 ]
[編集] メニューの [ブレークポイント] をクリックします。


[ブレークポイント] ダイアログ ボックスで、[データ] タブをクリックします。


[評価される式を入力してください] ボックスに変数名を入力ます。


[OK] をクリックしてブレークポイントを設定します。

798 名前:デフォルトの名無しさん mailto:sage [2009/06/04(木) 23:53:07 ]
>>797
できました
ありがとうございます

799 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:50:52 ]
VC2008EEでデバッグしています。
forのループ内にブレークポイントを置いてステップアウトしているんですが、
ループの回数が1000単位なので、1回ずつ変数の状態を見るのは手間がかかりすぎてしまいます。
例えば100回に1回だけ変数の状態を見たい場合、いい方法はないですか?

800 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 15:55:42 ]
>>799
>>796-797の応用

801 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 17:22:52 ]
>>800
6と2008EEの違いのせいか、>>797の項目が見つからず、
いろいろいじってたらヒットカウントというぴったりの物がありました。
どうもでした。

802 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 18:21:37 ]
いまここに、Ansi C で書いたスタティックライブラリ c.lib があります。
そのライブラリをつかって、C++で書いたアプリケーション(GUIに依存しない部分を記述したもの)myapp があります。
GUI はお手軽に C# で書きたいので、アプリケーション部分 myapp を dll 化して、それを C# から呼び出したいです。

そこで、myapp.dll をつくりたいのですが、いざビルドしてみると、myapp から c.lib の関数を参照している部分でリンカエラーになります。
c.lib をスタティックリンクさせた状態で myapp.dllをつくるにはどうすればよいでしょうか?
c.dll を作るのがめんどくさいので、myapp.dll が c.lib を内包してくれるとありがたいのですが。




803 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 20:22:08 ]
できるはずだから、リンカオプションがまずいだけ。

804 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:17:43 ]
extern "C"
{
#include "[c.libの関数のヘッダ]"
}
でもリンクエラーが出る?

805 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:19:15 ]
リンカオプションですか....
c.lib をスタティックリンクするのって、もしかして
myapp.dll のソースで #pragma comment(lib, "c.lib")
だけではダメだったりしますか?
(もちろん c.lib のあるディレクトリにパスが通ってるのが前提として)




806 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 22:34:56 ]
それであっている。EXEでLIB使うときと同じ。
そういえば、そのLIBとDLLでCRTの設定は同じ?
異なっているといるとよくリンカに怒られる。

807 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 23:58:52 ]
現在デバッグビルドで試していますが、ランタイムライブラリの設定は c.lib と myapp.dll の両方で
「マルチスレッドデバッグ (/MTd)」で統一してあります。

呼び出し規約が c.lib だとデフォルトの設定のままで __cdecll に、
mydllではDLLのお約束(?)に従って __stdcall になっているのが気になりますが、
これは問題があったとしても実行時にでるものであって、リンカエラーとは関係ないですよね...
書き忘れましたが、リンカエラーというのは

未解決のシンボル "int __stdcall AAA()" (?AAA@@BBB@@CCC@D" が関数 "public: int __thiscall EEE::FFF() (?FFF@EEE@@GGG) で参照されました

というのがつらつらでてくるものです。
myapp(C++)もともと exe として作っていて、そこから c.lib を参照するために、
cライブラリには既に extern "C" が記述してあります。

そしてその exe はきちんとビルドできて、実行できていました。

それでも念のため、ライブラリの #include をさらに extern "C" で囲んでみると、
なぜか Direct3D のヘッダ d3dx9math.h で大量の

"operator *" Cのリンゲージ関数はC++のクラス D3DXVECTOR2を戻せません

メッセージがでました。

もうすこし試してみます。

808 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:34:48 ]
呼び出し規約の違いはdefファイル使わねえとそのまま名前装飾に影響する

809 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 00:54:26 ]
そういうことで惑うなら、呼出規約はソースコードに
いちいち書いたほうがいいよ。コンパイラオプションにて一括で指定するのではなく。

810 名前:デフォルトの名無しさん [2009/06/06(土) 02:08:13 ]
MFCのMDIで秀丸みたいなマルチドキュメントにしたいんだけど(タブ形式)
普通にEditビューじゃタブ形式にならないんだけど、どうすればいいの?

811 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 03:03:48 ]
なるだろ?
2008のSP1限定だけど

812 名前:807 mailto:sage [2009/06/06(土) 11:32:31 ]
なるほど、呼び出し規約を変えたら嘘のようにエラーがなくなりました。
いままで呼び出し規約を気にした事はなかったので、良い勉強になりました。どうもありがとう。

813 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:15:31 ]
なるほどなるほど

814 名前:デフォルトの名無しさん [2009/06/06(土) 12:30:33 ]
VC++でWin32プログラムを作成しています。
VS2008の雛形を元に、DialogBoxを追加しようとしているのですが上手く出来ません。
現在はファイルとヘルプの2個だけです。
やったこと
(1)WndProc()のmessage引数で、WM_CREATEが渡された場合に
DialogBox(hInst, MAKEINTRESOURCE(IDD_XXXBOX), hWnd, Xxx);
と書いた
(2)Xxxは以下のような関数です
INT_PTR CALLBACK Xxx(HWND, UINT, WPARAM, LPARAM);

コンパイルは出来たのですが、DialogBoxは増えませんでした。
どうかやり方を教えてください。



815 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:46:35 ]
その手順で普通にやればできるから、コードがどこかおかしい。



816 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:02:13 ]
ShowWindowしてないだけだったりして。

817 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:07:01 ]
通常はそれも不要だが。

818 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:21:55 ]
モーダルで停止

819 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 13:26:23 ]
ダイアログボックスなら「表示」と書くと思うが「追加」だとか「増えません」だとか表現している点が気になる。

・・・見当違いのことをやろうとしているのではあるまいか?

820 名前:デフォルトの名無しさん [2009/06/06(土) 14:06:02 ]
libjpegのライブラリにjpegtran機能も組み込みたいと思ってるのですが、
ソース・ヘッダファイルにjpegtranプロジェクトに入ってるもの(transupp等)を足しても、
そっちで宣言されている関数だけ、
ライブラリを呼ぶ側のアプリでリンクエラー(外部参照未解決)が出てしまいます。
その他の標準でlibjpegプロジェクト内で既に宣言されていた関数は(使えるかはともかく)エラー出ません。

ソースはIJGのではなく、VC++のプロジェクトファイルも入ってる高速化版(ソフトウェア工房α)です。
nasmも入れてあり、コンパイル自体はエラー吐くことなく成功します。

ビルドの仕組みを理解できてなくてSource/Header Files に入れるだけでは駄目っぽい以外解らず助言頂けませんでしょうか。
ただし、lib自体の容量は大きくなります。

VC++のバージョンは6.0です。Win32アプリ開発。

821 名前:デフォルトの名無しさん [2009/06/06(土) 14:36:50 ]
しかし、
Vc6の開発者おおいね。。libjpegとかつかったなあ。VC6ってGDI+つかえるんだっけ。。

822 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 17:47:15 ]
ライブラリの開発者に直接聞かないで全然関係ない掲示板で質問されてもな

823 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 18:52:55 ]
>>821
使える。

824 名前:820 mailto:sage [2009/06/06(土) 19:40:49 ]
ライブラリそのものは自分でビルドしてます。
また、ソースコードはほぼIJGそのままで、IJG提供のソースを、調べたnmakeでのコンパイルしても
transupp等の組み込みが出来てないので、同様のエラーを吐きます。

日経ソフトウェアダウンロード からプロジェクトファイルを落として見たものの同様の状況で
jpegtranに使用される関数をライブラリに組み込む事が出来ませんでした。
ただSource/Header Filesに入れるだけではライブラリ作成時にエラーが出なくとも呼び出し側でリンクエラー同じです。

bccでlibjpegライブラリを使ってjpegtranの無劣化回転処理を組み込んでいる方が居たので、
可能な事は確かなのですが・・・。(そのライブラリはVC++からでは使用できず)

825 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 20:05:58 ]
すみませんひとりごとでした



826 名前:デフォルトの名無しさん [2009/06/06(土) 20:08:50 ]
そこで#pragmaですよ。。

827 名前:デフォルトの名無しさん [2009/06/07(日) 07:29:11 ]
Win32アプリケーションを選択してC++でプログラムを書いてるのですが、
std::cout<<message<<std::endl;
とかやってもどこにもメッセージが出力されません。どうすればよいですか?


828 名前:デフォルトの名無しさん [2009/06/07(日) 08:01:24 ]
AllocConsole()とかを使おうかと思ったのですが、よく分からなかったので
HWNDをMessageBox()に渡して、メッセージを出すことにしました。
ありがとうございました。


829 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:41:00 ]
下のように、クラスAAのインスタンスを、メモリーに割り当てたときに。
コンストラクタとデストラクタをどうやって起動したらいいのでしょ?

class AA { int i1,i2; AA(); ~AA(); }
void func()
{
 char dat[100];
AA *dat;
 dat = (AA *)dat;
}


830 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:44:43 ]
割り当てたら勝手に実行されるんじゃないの
解放したらまた同じく

831 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:46:14 ]
上の場合、ポインターがセットされるだけなので、実行されないです。
この場合の実行の仕方を知りたいです。

832 名前:デフォルトの名無しさん [2009/06/07(日) 10:46:35 ]
Win32アプリケーションとWindowsフォームアプリケーションでは、何が違いますか?


833 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 10:48:55 ]
>>832
フォームの使用・非使用

834 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 11:46:45 ]
WinMain/main

835 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:38:05 ]
VisualStudio 2008 EEのVC++で公開ソースをビルドしようとしたのですが、
afxwin.hがないとエラーが出たので”Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う”
を見て設定しました。そして、ビルドをしたら
error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
というエラーがでます。ソースは

_AFXWIN_INLINE CMenu::operator==(const CMenu& menu) const
  { return ((HMENU) menu) == m_hMenu; }
_AFXWIN_INLINE CMenu::operator!=(const CMenu& menu) const
  { return ((HMENU) menu) != m_hMenu; }
_AFXWIN_INLINE HMENU CMenu::GetSafeHmenu() const
  { ASSERT(this == NULL || m_hMenu == NULL || ::IsMenu(m_hMenu));
    return this == NULL ? NULL : m_hMenu; }

となっており、2行目と4行目でエラーがでます。
どう書き換えればエラーが直るでしょうか。



836 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 12:45:37 ]
MFCはEEじゃ使えないからダメ。

837 名前:835 mailto:sage [2009/06/07(日) 13:03:46 ]
>>836
ということはソースを修正しても無駄ということですね。ありがとうございました。

838 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 13:57:38 ]
>>829 の質問別スレで聞いて見ます。

839 名前:デフォルトの名無しさん mailto:sage [2009/06/07(日) 14:10:05 ]
実体がないのにコンストラクタは働かない。

840 名前:デフォルトの名無しさん [2009/06/07(日) 14:53:27 ]
小生、昨日、サッカーを久しぶりにテレビ観戦して
試合後、ニュー速で試合を見て思ったことを、色々書いたら
ぼっこぼこ馬鹿にされたなりよ。やっぱ小生がそこそこ偉い発言できるのはMFCしか無いと思ったなりよ。

841 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 10:00:06 ]
DLLなど複数プロジェクトが含まれるソリューションを開発する時、
ソース内のincludeパスの指定どうしてますか?
VC++の場合はProjectDirとSolutionDirの2つがデフォルトで
使えると思いますがこれの使い分けとか気にしてます?

842 名前:デフォルトの名無しさん [2009/06/08(月) 11:21:47 ]
VS2008で、Cのプログラムをコンパイルするとき、CとしてコンパイルするかC++として
コンパイルするかというのは、自分で決められますか?

843 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:27:48 ]
できる。
IDE内ならオプションにあるべ。
コマンドラインでも指定できるし、何も指定しないと拡張子から区別される。

844 名前:デフォルトの名無しさん [2009/06/08(月) 12:40:49 ]
>>843
ありがとうございます。
別ファイルにある
double func();
というのをmain()から呼んでる時、main()のすぐ上でint func();という宣言があるので
C++では呼び出せてたのですが、ふとこれがCだったら呼び出せてなかったっけ、と気になった
ので…。


845 名前:デフォルトの名無しさん [2009/06/08(月) 14:15:29 ]
ソースを書いてる時のコメントの色が見づらいので変更したいのですが色とかはどうやって変更したらいいですか?



846 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:19:03 ]
ツール - オプション - 環境 - フォントおよび色

847 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 14:36:58 ]
>>846
ありがとうございます!!






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

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

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