【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (960レス)
【GUI】wxWidgets(旧wxWindows) その5【サイザー】 http://mevius.5ch.net/test/read.cgi/tech/1270793556/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
325: デフォルトの名無しさん [sage] 2011/12/22(木) 19:21:01.94 MinGW勢はいないのか どいつもこいつもマイクロソフトの犬だな http://mevius.5ch.net/test/read.cgi/tech/1270793556/325
326: デフォルトの名無しさん [sage] 2011/12/23(金) 01:55:47.35 mingwの時点でOSはWindowsなのに >どいつもこいつもマイクロソフトの犬だな とか書くのかよw http://mevius.5ch.net/test/read.cgi/tech/1270793556/326
327: デフォルトの名無しさん [sage] 2011/12/23(金) 02:50:47.72 確かにそうだな、ちょっとWindows捨ててくる http://mevius.5ch.net/test/read.cgi/tech/1270793556/327
328: デフォルトの名無しさん [sage] 2011/12/23(金) 16:08:42.36 wxWidgetsはWindows以外はおまけだろ。 Win32のラッパーとしての価値しかないと思っている。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/328
329: デフォルトの名無しさん [sage] 2011/12/23(金) 16:11:37.68 >>326 ナイス http://mevius.5ch.net/test/read.cgi/tech/1270793556/329
330: デフォルトの名無しさん [sage] 2011/12/23(金) 16:12:34.17 >>328 元々 wxWindows だからなぁ http://mevius.5ch.net/test/read.cgi/tech/1270793556/330
331: デフォルトの名無しさん [sage] 2011/12/24(土) 17:54:24.54 migw もなぁ…64bit対応がなぁ… wxruby とか使いたくても使えないよ しかしひとはビルドしろという なんどでもビルドしろという びるどしろー http://mevius.5ch.net/test/read.cgi/tech/1270793556/331
332: デフォルトの名無しさん [sage] 2011/12/25(日) 00:36:14.77 rubyるど http://mevius.5ch.net/test/read.cgi/tech/1270793556/332
333: デフォルトの名無しさん [sage] 2011/12/25(日) 08:31:41.01 MSWでwxListCtrlを使ってみたらDESELECTEDイベントが通知されないバグがあったので クリックやキボード操作が行われる度に選択状態を自分でチェックしてDESELECTEDイベントを送るようにしたら アイテムが1個の時に何故かマウスイベントが消し去られるバグまで出てきて もう八方塞がりです なにこれ馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1270793556/333
334: デフォルトの名無しさん [sage] 2011/12/25(日) 12:00:56.99 wxLC_VIRTUALの呪い http://mevius.5ch.net/test/read.cgi/tech/1270793556/334
335: デフォルトの名無しさん [sage] 2011/12/25(日) 13:04:57.85 そういうのってバグ報告できないのかな? http://mevius.5ch.net/test/read.cgi/tech/1270793556/335
336: デフォルトの名無しさん [sage] 2011/12/25(日) 21:34:01.11 馬鹿が使うと馬鹿っぽく振舞います http://mevius.5ch.net/test/read.cgi/tech/1270793556/336
337: デフォルトの名無しさん [sage] 2011/12/27(火) 11:01:32.77 明らかに開発陣はWindowsでテストしてないな 昔よりバグが悪化してるwww http://mevius.5ch.net/test/read.cgi/tech/1270793556/337
338: デフォルトの名無しさん [sage] 2011/12/27(火) 12:10:40.98 最近wxTreeCtrl使ってるけどイベント通知できんわ 仕様がわかってないだけかも知れんが、バグだったら報告しなきゃだな http://mevius.5ch.net/test/read.cgi/tech/1270793556/338
339: デフォルトの名無しさん [sage] 2011/12/27(火) 16:48:41.14 できるよ http://mevius.5ch.net/test/read.cgi/tech/1270793556/339
340: デフォルトの名無しさん [sage] 2011/12/27(火) 19:07:54.63 最新バージョンってバグ多いの? これから使うか悩んでるので教えてださい。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/340
341: 338 [sage] 2011/12/27(火) 23:00:49.89 今日ちょっとwxTreeCtrlの全イベント試してみたが、特に問題なかった。環境はMSW(MinGW) >>340 英語が多くてドキュメントがAPIリファレンスしかないのがある意味バグw この前wxXMLをHTMLに使ったら一気にバグってワロタ(当たり前だけど) それさえ超えればいいものだと思います http://mevius.5ch.net/test/read.cgi/tech/1270793556/341
342: デフォルトの名無しさん [sage] 2011/12/27(火) 23:36:17.73 自分の無能を環境のせいにすんなやぼけ http://mevius.5ch.net/test/read.cgi/tech/1270793556/342
343: デフォルトの名無しさん [sage] 2011/12/28(水) 08:03:39.44 バグとか明らかに仕様とは違う動きをしたりすることは多々あるけど もともとネイティブAPIをラップしただけだから誤魔化せるかもしれない 結局のところネイティブレベルの知識とwxWidgetsの中身まで調べないといけないので時間はかかる それでもネイティブコンパイル出来ないC#も嫌だし、MFCよりは遥かにましだけどw ネイティブレベルのことをしたくてGUIも楽に作りたいって要求に答えてくれるものがないもんな http://mevius.5ch.net/test/read.cgi/tech/1270793556/343
344: デフォルトの名無しさん [sage] 2011/12/28(水) 15:34:13.86 >>341 英語なのはキツイけどほかに良いライブラリも見当たらないし我慢するw >>343 バグがあるってのはちょっと残念だなぁ ネイティブレベルの知識もそんなに無いし不安だ・・・ けど、大きなバグじゃないのなら少し使ってみようと思います。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/344
345: デフォルトの名無しさん [sage] 2011/12/29(木) 15:13:49.10 649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be: 学生プログラマ日本一決定戦(予選は社会人も参加可) ttp://codevs.jp/howto.html 現在予選開催中 応募締切 2012.1.6 12:00 おもしろいことやっているじゃん。誰か今から参加しろよ。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/345
346: 本田 [] 2011/12/31(土) 22:24:08.47 >>340 http://www.wxwidgets.org/ wxWidgets 2.9.3 Released 2011-12-14 While this is still officially a development release because some API details are still not frozen, we believe that 2.9.3 can be used in production environment, especially for the new projects for which (small) changes in behaviour since 2.8 are not a problem. Give it a try and let us know what do you think! http://mevius.5ch.net/test/read.cgi/tech/1270793556/346
347: デフォルトの名無しさん [sage] 2012/01/01(日) 00:03:23.71 2.8もバグ多い http://mevius.5ch.net/test/read.cgi/tech/1270793556/347
348: デフォルトの名無しさん [] 2012/01/01(日) 11:14:18.13 サイザーage http://mevius.5ch.net/test/read.cgi/tech/1270793556/348
349: 【大吉】 【683円】 [sage] 2012/01/01(日) 12:26:18.78 今年のおみくじは大吉を良く目にする http://mevius.5ch.net/test/read.cgi/tech/1270793556/349
350: 【大吉】 [sage] 2012/01/01(日) 13:38:44.46 今年はwx使うことあるかなー http://mevius.5ch.net/test/read.cgi/tech/1270793556/350
351: デフォルトの名無しさん [sage] 2012/01/04(水) 16:51:15.64 wxWebViewって縦書きに対応してる? http://mevius.5ch.net/test/read.cgi/tech/1270793556/351
352: デフォルトの名無しさん [sage] 2012/01/05(木) 01:29:02.25 wxTextCtrlの内容を一行ずつ読み込みたいです。 行数を調べるのに以下のやり方でいいのかと考えたのですがエラーがでます。 size_t abc = wxTextCtrl::TextCtrl1.GetNumberOfLines(); コンパイルすると以下のエラーがでます。 C:\Users\x\Desktop\practice\practiceMain.cpp||In member function 'void practiceFrame::OnButton2Click(wxCommandEvent&)':| C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: 'TextCtrl1' is not a member of 'wxTextCtrl'| http://docs.wxwidgets.org/2.9.3/classwx_text_file.html ここを見るとメンバー関数と書いているようなのですが、何か考え違いをしていると思うのですが・・ 教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/352
353: デフォルトの名無しさん [sage] 2012/01/05(木) 01:32:45.50 >>352 wxTextCtrlではなくwxTextFileとあるけように思える。 IDE使ったほうがいいんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1270793556/353
354: デフォルトの名無しさん [sage] 2012/01/05(木) 02:10:29.44 >>353 レスありがとうございます。 リンクを間違っていました。 以下を参考にしました。 http://wxwindowsjp.sourceforge.jp/docs/html/wx/wx381.htm#wxtextctrlgetnumberoflines IDEは、CODE::BLOCKS SVN:7550を使用しています。 試しに以下のことをやってみたのですがエラーがでました。 int abc = TextCtrl1.GetNumberOfLines(TextCtrl1); C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'| int abc = TextCtrl1.GetNumberOfLines(); C:\Users\x\Desktop\practice\practiceMain.cpp|225|error: request for member 'GetNumberOfLines' in '((practiceFrame*)this)->practiceFrame::TextCtrl1', which is of non-class type 'wxTextCtrl*'| wxTextCtrl1は、CODE::BLOCKSのGUIの部品を貼り付けています。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/354
355: デフォルトの名無しさん [sage] 2012/01/05(木) 02:31:38.99 >>354 全体のコード見てないからなんとも言えないが、TextCtrlはprivateとかで宣言しないと外から触れんぞ 例 Frame.h private : wxTextCtrl* m_text; Frame.cpp // メソッド内にテキストコントロール配置 m_text = new (.....); m_text->Hogehoge(); http://mevius.5ch.net/test/read.cgi/tech/1270793556/355
356: デフォルトの名無しさん [sage] 2012/01/05(木) 12:59:53.67 >>355 レスありがとう。 int abc = TextCtrl1 -> GetNumberOfLines(); と書けば、エラーなくコンパイルできました。 本当にありがとうでした。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/356
357: デフォルトの名無しさん [sage] 2012/01/05(木) 17:12:08.35 >>356 それじゃあコンパイルできても内部処理書く段階で死にそうなのでアドバイス 第十三回-03 ドット演算子とアロー演算子 http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html あとこことかも役に立つ ●C++編(言語解説) トップページ http://www.geocities.jp/ky_webid/cpp/language/index.html http://mevius.5ch.net/test/read.cgi/tech/1270793556/357
358: デフォルトの名無しさん [sage] 2012/01/05(木) 21:49:09.86 >>357 ありがとうございます。 ゆっくり読みます。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/358
359: デフォルトの名無しさん [sage] 2012/01/06(金) 15:41:25.76 テキストファイルを読み込む時に、utf-8のファイルの場合はreadして読み込むことができます。 テキストファイルがsjisの場合、次のようなエラーメッセージが表示されます。 [Faild to convert file "z:\test.txt" to unicode http://docs.wxwidgets.org/2.9.3/classwx_text_file.html http://docs.wxwidgets.org/2.9.3/classwx_conv_auto.html 上記を読むと、wxConvAuto機能を使用すると自動的にコンバートしてくれるように記載されているように見えます。 それで、openするときに、wxConvAuto()を付け加えてみたのですがエラーがでます。 wxConvAutoは付けても、付けなくても同じ現象です。 tfile.Open(file,wxConvAuto()); TextCtrl1->SetValue(str); に、utf-8のファイルを読み込むと内容が反映されます。 sjisだとオープン時に(本当にオープンするときのエラーかどうかはわかりませんが・・・)上記エラーがでます。 またTextCtrl1にはテキストファイルの内容が反映されません。 どこが悪いか教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/359
360: デフォルトの名無しさん [sage] 2012/01/06(金) 15:42:52.53 すいません、ソースコードは短めなので、こちらに書きます。 wxString file,str,s,number; wxTextFile tfile; wxFileDialog fdlog(this,_T("テキスト読み込みファイルの選択"), wxEmptyString, wxEmptyString, wxEmptyString, wxFD_OPEN); if(fdlog.ShowModal() != wxID_OK) return; { file.Clear(); file = fdlog.GetPath(); tfile.Open(file,wxConvAuto()); wxLogMessage(_T("オープンできました。")); str = tfile.GetFirstLine(); s = str; str += '\n'; while(!tfile.Eof()) { s= tfile.GetNextLine(); str += s; str += '\n'; } TextCtrl1->SetValue(str); wxLogMessage(_T("読み込み完了しました")); tfile.Close(); こんな感じです。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/360
361: デフォルトの名無しさん [] 2012/01/06(金) 16:25:17.96 wxTextCtrlの中身を印刷したいのですが、どのようにすればいいのかいまいち分かりません。 どこかにwxTextCtrlのアドレスか何かを渡せばよいのでしょうか?教えてください http://mevius.5ch.net/test/read.cgi/tech/1270793556/361
362: デフォルトの名無しさん [sage] 2012/01/06(金) 18:45:10.90 >>360 過去スレにもSJIS読み込みについての事例が沢山あるが、wxWidgetsのライブラリによるSJIS→UTF-8の変換は全く期待できない 結論としては「UnicodeビルドしてUTF-8で読み込め」でFAだとおもう おすすめはlibiconvでUTF-8に変換してからwxWidgets内に読み込む iconvはwikipediaにもサンプルコードがあるから、使うのは難しくないはず http://ja.wikipedia.org/wiki/Iconv >>361 wxWidgets2.9.3のクラスリファレンス見れ、いっぱい使えそうなのあるぞ wxPrintData wxPrintDialog wxPrintDialogData wxPrinter wxPrinterDC wxPrintout wxPrintPreview http://mevius.5ch.net/test/read.cgi/tech/1270793556/362
363: 361 [] 2012/01/06(金) 19:18:13.20 印刷の件ですが、wxPrinterDCにwxTextCtrlの値を渡せばWindowsでは印刷することができました。 しかし、LINUX(ubuntu11.10)環境下では、印刷プレビューを見る限りではうまくいっている様に思えるのですが、実際に印刷してみると(test wordsと言う文字を1部だけ印刷しようとしました。)、 1枚目のプリントに下記のようなエラーが印刷され、その後プリンタが無限に白紙を出しつづけるという不具合が起こりました。 %!PS-Adobe-3.0 %%Creator: Gnome Print Version 2.18.8 %%CreationDate: D:201201061 この不具合は、wxWidgets2.8.12の印刷用のサンプルプログラムprintingの内容を印刷しようとしても起きてしまったので、 参考にしたサンプルその物がどこかおかしいか、こちらの印刷まわりの設定がおかしいかのどちらかだと思うので、とりあえず上記のエラーを調べてみます。 >>362 レスありがとうございます。 一応読んではいたのですが、いまいちよく分からなかったのでここに頼ってしまいました。住みません。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/363
364: デフォルトの名無しさん [sage] 2012/01/06(金) 19:42:20.71 さっきShift_JISで読み込むのは無理だと言ったがそれは嘘だ(コマンドー風に) 下みたいなテストプログラムで普通にShift_JIS読み込めてワロタ 2.9.3パない // テキストファイルの読み込み wxTextFile file(wxT("./Shift_JIS.txt")); file.Open(wxConvAuto(wxFONTENCODING_CP932)); wxString test = file.GetFirstLine(); frame->SetStatusText(test); frame->Show(true); http://mevius.5ch.net/test/read.cgi/tech/1270793556/364
365: デフォルトの名無しさん [sage] 2012/01/07(土) 21:53:08.88 >>362>>364 レスありがとうございます。 試しに以下のように入力してコンパイルしてみました。 wxTextFile file(wxT("c:\\Shift_JIS.txt")); file.Open(wxConvAuto(wxFONTENCODING_CP932)); wxString test = file.GetFirstLine(); コンパイルすると、下記エラーがでます。 C:\Users\x\Desktop\practice\practiceMain.cpp|154|エラー: no matching function for call to 'wxConvAuto::wxConvAuto(wxFontEncoding)'| wxwigetsは,2.8.12を使用しています。 コンパイルが通らない原因が、わからにので2.9.3のソースをダウンロードしてコンパイルを試しています。 cドライブ直下に、MinGWとmsysというのを導入後、msys.batで端末?を起動しました。 そこで、./configure --disable-shared --enable-monolithic --enable-unicodeと行い、make make installまでは行いました。 make installした成果物?をwindowsの実行環境にどうもっていくか調べているところです。 何が悪いか手探りなので的外れなことしてるような気もするんですが、これしかできないのでとりあえず2.9.3の環境を作ってみます。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/365
366: デフォルトの名無しさん [sage] 2012/01/07(土) 22:42:42.75 >>365 やりかたは間違ってないとおもうので頑張って 今ちょっとクラスリファレンス見てたけど wxTextFileの部分で::Openで取れる引数が2.8から2.9で変わってるみたい wxWidgets 2.8 bool Open(wxMBConv& conv = wxConvUTF8) const bool Open(const wxString& strFile, wxMBConv& conv = wxConvUTF8) const wxWidgets 2.9 bool Open (const wxMBConv &conv=wxConvAuto()) const bool Open (const wxString &strFile, const wxMBConv &conv=wxConvAuto()) const OpenメソッドにwxConvAuto()をとれるのが新機能みたい。2.8にはないんだな、これが。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/366
367: デフォルトの名無しさん [sage] 2012/01/08(日) 00:03:23.41 >>366 わざわざ調べてくれてありがとうございます。 2.8にはない新機能だったんですね。 2.9.3にする励みになりました。 code::blocksで、コンパイル済みのものを入れるだけで1週間くらいかかった記憶があります。 コンパイルなど慣れないことをするので、今回も同じくらい時間かかるかもしれません。 でも2.9.3にする気にになりました。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/367
368: デフォルトの名無しさん [sage] 2012/01/09(月) 00:02:24.31 Mingwをcドライブ直下にインストール PATHに、C:\MinGW\bin;C:\MinGW\mingw32\binを追加 c:\wxWigets-2.9.3を解凍 下記を参考にしました。 http://wiki.codeblocks.org/index.php?title=Compiling_wxWidgets_2.8.6_to_develop_Code::Blocks_%28MSW%29 オプションはcode::blocksで使用する場合のofficial supportと書いていたので下記とおりにしています。 コマンドプロンプトで下記実行 C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir% code::blocksの設定 settings>Enviroment>Enviromet variables WSWIN=C:\wxWidgets-2.9.3 settings>Grobal Variable Editor current varibale:wx base: ${WXWIN} include: ${WXWIN}\include lib: ${WXWIN}\lib 開発環境のコンパイルが初めてで、これでいいのか不安ですが、code::blocks上のプロジェクトのコンパイルが通りました。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/368
369: デフォルトの名無しさん [sage] 2012/01/09(月) 00:08:31.38 >>366 wxTextFile gfile(wxT("c:\\Shift_JIS.txt")); gfile.Open(wxConvAuto(wxFONTENCODING_CP932)); wxString test = gfile.GetFirstLine(); tfile.Open(file,wxConvAuto(wxFONTENCODING_CP932)); 二通りのやりかたでコンパイルが正常にできました。 また、sjisのファイルを読みこむこともできました。 ありがとうございました。 助かりました!!! http://mevius.5ch.net/test/read.cgi/tech/1270793556/369
370: 361 [] 2012/01/09(月) 23:07:32.49 ubuntuでの印刷の件ですが、使っているプリンタのドライバがよくなかった様で、ドライバを変更したらうまく行きました。 現状、wxTextCtrl内の行が長すぎると用紙からはみ出てしまうので、適切なところで改ページするようにしたいと思っていますので、またもう少し考えてみます。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/370
371: デフォルトの名無しさん [] 2012/01/11(水) 14:12:14.80 Linuxで開発したツールを知り合いの古い環境で動くかどうかテストしたら、libc.so.6が見当たらないっていうエラーが出てくるのですが、標準Cライブラリって動的リンクするしか方法はないのでしょうか? その場合、作った実行ファイルは古い環境では動かないのかな… 一応./configure のオプションは --with-gtk --enable-std_iostreams --enable-std_string --enable-controls --disable-shared --enable-unicode --with-libjpeg=builtin --with-libpng=builtin --with-regex=builtin --with-libtiff=builtin --with-zlib=builtin --with-expat=builtin にして、プログラムのコンパイルは g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` -static-libgcc -static-libstdc++ g++ -o hoge.cpp `wx-config --cxxflags` `wx-config --static --libs` の3通りで実行ファイルを作ってそれぞれ試してもらったのですが、どれもlibc.so.6が利用できないというような意味のエラーが出てきます。 また g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` についても試しましたが、コンパイルエラーが大量に(主にライブラリが見当たらないといったようなエラー)が出てきます。 解決方法があるようでしたらご教授お願いします http://mevius.5ch.net/test/read.cgi/tech/1270793556/371
372: デフォルトの名無しさん [sage] 2012/01/11(水) 18:34:11.40 >>371 エスパーしてみるわ 一応忠告しとくけどwxWidgetsは「同じソースコードからWin, Linux, Macで使えるバイナリがコンパイルできる」のであって 「LInuxでコンパイルしたバイナリがWindowsで使える」というわけではない。 それができるのはJavaだけ 上の問題ではないとしたら Linuxでコンパイル→Linuxで使う、はライブラリが揃ってる限りいけるはず。 よって、既に生成している実行ファイルを友人の環境で「ldd <- 対象の実行ファイル ->」して 友人の環境で足りないライブラリを追加する もしくは友人の環境でwxWidgetsのソースをコンパイルして「wx-config」が正しく使えるようにする。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/372
373: 372 [sage] 2012/01/11(水) 18:39:33.34 というかlibc.so.6が足りないだけなら 実行ファイルと同じディレクトリにlibc.so.6を置いて実行すればいける気もする http://mevius.5ch.net/test/read.cgi/tech/1270793556/373
374: デフォルトの名無しさん [sage] 2012/01/11(水) 20:17:58.74 >>372 レスありがとうございます。 LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。私も知り合いも環境はLinuxです。 極力ユーザが煩わしくないように、実行ファイル以外のファイルをユーザが別途インストールする必要が無いようにしたいのですが、不可能なのでしょうか?下記サイト http://up-cat.net/wxWidgets%A4%CE%A5%B9%A5%B9%A5%E1.html によると、Javaとは違いランタイムがいらないと書いてありますが限度があるのでしょうか 一応Windows版は同じソースで私の周りの環境では問題なく動いたのですが… libc.so.6を実行ファイルと同じフォルダにおけ、ということですが、共有ライブラリはlddコマンドで見れるような指定されているアドレスに置かなくても利用可能なのでしょうか? その方法で動作するかもしれないのでまた試してみます。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/374
375: デフォルトの名無しさん [sage] 2012/01/11(水) 21:04:03.63 >>374 > LinuxでコンパイルしたファイルはLinuxでは使えない、というのはわかっています。 いやわかってないだろ、どう見ても。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/375
376: デフォルトの名無しさん [sage] 2012/01/11(水) 21:12:12.37 >>375 すみません間違いました。 LinuxでコンパイルしたファイルはLinux以外では使えない、というのはわかっています。です http://mevius.5ch.net/test/read.cgi/tech/1270793556/376
377: デフォルトの名無しさん [sage] 2012/01/12(木) 00:36:38.89 >>376 自分の環境でコンパイルするときに正しく-staticオプションつけとけば、依存なしにバイナリを走らせることはできるはず 依存関係が出てるってことはstaticリンクビルドされてないのは間違いないので、そのアプリをちゃんとコンパイルしなおすべきかと http://mevius.5ch.net/test/read.cgi/tech/1270793556/377
378: デフォルトの名無しさん [sage] 2012/01/12(木) 10:46:49.97 >>377 レスありがとうございます。 -static-libcというコマンドは存在しないみたいで、どのようにオプションをつければlibcを静的リンクすればいいのか、自分なりに調べてみたのですがよく分からないのでできれば教えていただきたいです。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/378
379: デフォルトの名無しさん [sage] 2012/01/12(木) 12:10:12.07 >>378 リンク時に「-static」とつければいいです この意味がわからなければ gcc,CXXFLAGS,LDFLAGS ,MAKEFILE、リンカとかのキーワードでググってね http://mevius.5ch.net/test/read.cgi/tech/1270793556/379
380: デフォルトの名無しさん [sage] 2012/01/12(木) 15:19:19.22 >>379 g++ -static -o hoge.cpp `wx-config --cxxflags` `wx-config --libs` でコンパイルしていたのですが、下記のようなエラー(長いので前半部分だけです。ごめんなさい。)が出るのですが、./configureのオプションか何かが足りないのでしょうか… /usr/bin/ld: cannot find -lgdk_pixbuf-2.0 /usr/local/lib/libwx_baseu-2.8.a(baselib_dlunix.o): In function `wxDynamicLibrary::GetProgramHandle()': dlunix.cpp:(.text+0x13): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `lookup_gid_name': (.text+0x1a5c): warning: Using 'getgrgid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/local/lib/libwx_baseu-2.8.a(baselib_utilsunx.o): In function `wxGetUserHome(wxString const&)': utilsunx.cpp:(.text+0x14f5): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking utilsunx.cpp:(.text+0x157a): warning: Using 'getpwuid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do': (.text+0xe2a): warning: Using 'setpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/gcc/i686-linux-gnu/4.6.1/../../../i386-linux-gnu/libglib-2.0.a(gutils.o): In function `g_get_any_init_do': (.text+0xe40): warning: Using 'endpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking http://mevius.5ch.net/test/read.cgi/tech/1270793556/380
381: デフォルトの名無しさん [sage] 2012/01/12(木) 18:33:37.54 >>380 どこまで甘えてんだよ 少しは自分で調べてください・・・少しはソースを見やがれ まず1行目 -lgdk_pixbuf-2.0 こいつの意味は「libgdk_pixbuf-2.0.a」という名前のライブラリをリンクするという意味 調べたらGNOMEプロジェクトの1つみたいだな http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/ まあこいつはyumでもapt-getでもなんでもいいからインストールすればいいだろ インストール後に /usr/lib 直下に上で書いたライブラリがあればコンパイルは通るはず 2行目より後は警告だから無視してもいいのかもしれないが、意味としては 「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」 「警告:コンパイルに使っとるglibcがシェアードライブラリじゃねーか、スタティックライブラリでリンクしろよクソ野郎」 という感じですか、間違ってたらすまん。頑張ってgdk-pixbufとwxとglibのライブラリを手に入れてください(もちろんスタティックライブラリで) http://mevius.5ch.net/test/read.cgi/tech/1270793556/381
382: デフォルトの名無しさん [sage] 2012/01/12(木) 18:42:52.46 あ、でも 「warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking」系のエラーは スタティックライブラリを使っても出ることがあるみたいだな。 つーことは一番の目標はgdk-pixbufをインストールすることか。簡単じゃん。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/382
383: デフォルトの名無しさん [sage] 2012/01/12(木) 19:03:01.17 ここまでおまえの自演 http://mevius.5ch.net/test/read.cgi/tech/1270793556/383
384: デフォルトの名無しさん [sage] 2012/01/12(木) 20:59:28.67 >>381 後から見返してみると私の状況説明がたりないため、自業自得ですが、 どこまで甘えてんだよと言われましても>>379までの-staticオプションをつけてコンパイルする、というのは>>371ですでにためしたと説明したつもりだったのですが、すみません。 一応こちらでもできる限りのことを調べて、ソースも読んでから書き込んだつもりですが、調べたことをかけてなかったら確かに意味がありませんね。 一応libgdk-pixbuf-2.0.0、libgdk-pixbuf-2.0.dvg はインストール済みで、wxWidgetsはもちろん入れています。glibやlibcもapt-cache searchを使って目についた関連がありそうなものをインストールしまくって、コンパイルした結果上記のエラーが出ています。 また、libc.aと言うファイルを5時間ほど探しつづけましたが見当たらず、また、下記のリンクの一番下の回答者の Check your Output mode settings, I believe you have linking set to "static". So the linker is looking for libgdk-pixbuf-2.0.a, which is probably not present. If you switch it to "shared" it should begin to work.. http://www.ultimatepp.org/forum/index.php?t=rview&goto=34857&th=6160 をみると、私の英語力ではlibgdk-pixbuf-2.0.0はstaticで出力できないと読めるため、八方塞がりとなり、ここで聞いた次第です。 気分を悪くしてしまってすみません。 >>383 自演ではないです。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/384
385: デフォルトの名無しさん [sage] 2012/01/12(木) 21:16:37.55 >>384 お前さんが知り合いの古い環境と同じ環境作って、 その環境でwxWidgetsとそのツールビルドすればええやん http://mevius.5ch.net/test/read.cgi/tech/1270793556/385
386: 381 [sage] 2012/01/12(木) 21:32:18.61 >>384 なんか思ったより込み入った問題みたいだな、キツイこと言ったかもしれないけど冗談だと思って聞き流してくだされ ちょっとググッたけどlibgdk-pixbuf-2.0.0のスタティックライブラリが生成できないのはバグみたいだぞ そして2番目のリンクではパッチとかも出てる http://askubuntu.com/questions/7990/what-can-i-do-about-missing-libgdk-pixbuf-2-0-la https://bugs.launchpad.net/ubuntu/+source/gtkglextmm/+bug/662572 で、対策としては gdk-pixbufのソースをとってきて ./configure --enable-static でいけるんではないかと思う(./configure -h したら一応あったけどこれは試した?) http://mevius.5ch.net/test/read.cgi/tech/1270793556/386
387: 381 [sage] 2012/01/12(木) 23:04:21.77 gdk-pixbuf-2.21.3にて ./configure --enable-static make make install できた。めんどくせえ。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/387
388: デフォルトの名無しさん [sage] 2012/01/12(木) 23:23:27.63 wx関係ない問題なのに面倒見いいな…… http://mevius.5ch.net/test/read.cgi/tech/1270793556/388
389: デフォルトの名無しさん [sage] 2012/01/12(木) 23:24:18.71 自演ですから http://mevius.5ch.net/test/read.cgi/tech/1270793556/389
390: デフォルトの名無しさん [sage] 2012/01/13(金) 00:05:23.76 >>385 レスありがとうございます すみません。また書き方が悪かったですね。 知り合いの環境で動かしたのは、Linuxの環境で作成したバイナリファイルを、Linuxの他の環境で動くかどうかを確かめるためでしたので、知り合いの環境だけで動いても目的を果たせないんです。 linux環境すべてで動かせるとは思ってはいないのですが、せめて、多少のバージョン違いは克服したい、と思いまして。 >>386 レスありがとうございます いえ、こちらが勝手に謝ってるだけだと思ってください。 そもそも自力で解決できないのが悪いんですし。 そしてまさかそこまで調べていただけるとは思いませんでした。 本当にありがとうございます。 パッチを試してみて、また報告します。 こちらのwxWidgetsのバージョンは2.8.12と2.9.3があるのですが、--enable-staticというオプションが確認できないので、調べてみます。 そしてちゃんと調べればきちんとパッチなども出てきたのですね… これからはもっとよく調べてから書き込むことにします。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/390
391: 381 [sage] 2012/01/13(金) 00:44:46.25 >>388 wxはgtkもラップしてますしおすし >>390 質問に答えるついででビルドしてみただけだよん http://mevius.5ch.net/test/read.cgi/tech/1270793556/391
392: 371 [sage] 2012/01/13(金) 02:21:19.65 >>388 ここでするべき質問ではなかったでしょうか…それ以前にちゃんと隅々まで調べておくべきでしたね >>391 --enable-staticはgdk-pixbufの方のオプションでしたね。勘違いしました。 無事に静的ライブラリでリンクすることができました。本当に有難うございました。 しかし本当に見返すとひどいですね。半年ROMって出直すことにします。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/392
393: デフォルトの名無しさん [sage] 2012/01/17(火) 01:29:32.09 過疎ってんのかと思ったら割と繁盛してた XRCでローカライゼーション機能(wxLocale)に対応してるみたいですが、普通にXRC中に文字列書いておけば コンバートしてくれるのでしょうか? 自分で試せって?そうですね、すいません 久々に何か書いてみたかっただけです(^0^) http://mevius.5ch.net/test/read.cgi/tech/1270793556/393
394: デフォルトの名無しさん [sage] 2012/01/18(水) 14:29:53.54 2.8.12をソースからコンパイルしました。 >>368が間違っているかどうかわからないのですが、今のコンパイル環境を書きます。 CODE::BLOCKSを使用する前提なので、CODE::BLOCKSスレかと思ったのですが、 ここで質問させてもらっていたのでここに書きます。 windows 7 64bit/32bit共にmingwだと、2.8.12はコンパイルが行えなかったです。 mingwだとコンパイルできなかったので、tdm-gcc tdm-gcc-4.6.1をインストールしました。 tdm-gcc-4.6.1は、setupの時に32bitを選択しています。 ttp://forums.codeblocks.org/index.php/topic,15283.msg102557.html#msg102557 PATHにC:\MinGW32\bin;C:\MinGW32\mingw32\binを追加。 DOSプロンプトで以下を実行。(2.9.3) C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport" c:\wxWidgets-2.9.3\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean c:\wxWidgets-2.9.3\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport" c:\wxWidgets-2.9.3\lib\gcc_dll>copy *.dll %windir% (2.8.12) C:\Users\x>SET PATH=c:\mingw\bin;c:\mingw\mingw32\bin c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release clean c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release CXXFLAGS="-fno-keep-inline-dllexport" c:\wxWidgets-2.8.12\build\msw>mingw32-make -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug clean c:\wxWidgets-2.8.12\build\msw>mingw32-make -j -f makefile.gcc MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=debug CXXFLAGS="-fno-keep-inline-dllexport" c:\wxWidgets-2.8.12\lib\gcc_dll>copy *.dll %windir% http://mevius.5ch.net/test/read.cgi/tech/1270793556/394
395: デフォルトの名無しさん [sage] 2012/01/18(水) 14:41:08.38 何が間違っているのか教えてください。 wxWigets2.9.3を使用しています。 http://docs.wxwidgets.org/trunk/group__group__funcmacro__file.html#ga599c484cd4deea8fed7275a9a7e0a11c ここを参考にしました。 wxRenameFile(_T("z:\\test.txt"),_T("z:\\test2.txt")); コンパイル後、実行すると Failed to copy the file 'z:\test.txt' to 'z:\test2.txt' (error 2: 指定されたファイルが見つかりません。と表示されます。 zドライブ上には、test.txtファイルはあります。 試しに、下記を試すと実行できました。 wxMkdir(_T("Z:\\T")); wxMkdir(_T("Z:\\T")); と実行すると、ディレクトリの作成と削除はできました。 2.9.3が開発版だからなにか問題があるかと思い、2.8.12を入れてみたのですが同じ現象です。 多分書き方が悪いんだと思うのですが、どこがわるいのかわかりません。 教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/395
396: デフォルトの名無しさん [sage] 2012/01/18(水) 14:50:42.64 馬鹿には無理 http://mevius.5ch.net/test/read.cgi/tech/1270793556/396
397: デフォルトの名無しさん [sage] 2012/01/18(水) 15:44:45.10 >>395 テキストファイルが読み取り専用になってたりしない? http://mevius.5ch.net/test/read.cgi/tech/1270793556/397
398: デフォルトの名無しさん [sage] 2012/01/18(水) 16:01:13.12 >>397 レスありがとうございます。 読み込み専用ではなかったのですが、windowsの拡張子を表示する設定にしていませんでした。 拡張子を表示する設定にしたところ、test.txt.txtになっていました。 すみません、初歩的な事を数日見逃していました。 レスありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/398
399: デフォルトの名無しさん [sage] 2012/01/18(水) 16:41:41.95 わろす http://mevius.5ch.net/test/read.cgi/tech/1270793556/399
400: デフォルトの名無しさん [sage] 2012/01/18(水) 18:21:10.87 なんか若い子がいっぱい来た感じ >>396 これはスクリプトなのかしら http://mevius.5ch.net/test/read.cgi/tech/1270793556/400
401: デフォルトの名無しさん [sage] 2012/01/18(水) 18:24:47.81 >>394 エラーログを貼らないとどんなハッカーでも原因はわからんですよ^^; そもそもCode::Blocksはビルドする必要ないような?初心者はバイナリバージョンをダウンロードすればいいと思うよ。 もしCode::Blocksの翻訳とかやってる方だったら全力支援しますが http://mevius.5ch.net/test/read.cgi/tech/1270793556/401
402: 401 [sage] 2012/01/18(水) 18:27:55.92 ごめん>>401は忘れてください。ただの報告だったんですね・・・ またエラーかと思った http://mevius.5ch.net/test/read.cgi/tech/1270793556/402
403: デフォルトの名無しさん [sage] 2012/01/19(木) 00:46:20.39 わろす http://mevius.5ch.net/test/read.cgi/tech/1270793556/403
404: デフォルトの名無しさん [sage] 2012/01/22(日) 22:48:49.88 wxWidgets2.9.3を使用しています。 下記リンクを参考にしました。 http://docs.wxwidgets.org/trunk/classwx_string.html#a55b90a900c24e9555760265170dc051c 文字列の中に特定の文字が複数回出た場合の検索を行いたいです。 .find()この中に、aとか、txtとか入れると、最初の桁数だけ検索できます。 たとえば、[t]と入力すると、文字列の中に4回でてきますが、一個目のものしか検索されません。 また、[猫]や[犬]などを入力すると、ループの処理に入らずすぐに終了します。 [あ] を入力すると、1回ループ処理に入っているますが、検索結果に0が帰ってきます。 コードは以下のようになっています。 //wxString gpath C:\Users\x\Desktop\practice\猫犬象aAbB猫猫猫犬犬あいう.txt wxString bb,cc,dd; size_t pos=0; if((pos=::gpath.find(("猫"),pos))!= wxString::npos) { wxMessageBox(_T("ループ 処理開始")); pos = ::gpath.find("猫",pos); cc.Printf(_T("%d"),pos); dd += cc; dd += "\n"; pos + 1; wxMessageBox(_T("ループ 判定処理に戻る")); } readpos -> SetValue(dd); wxMessageBox(_T("終了")); 文法?など、何が間違っているか教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/404
405: デフォルトの名無しさん [sage] 2012/01/22(日) 23:59:25.48 >>404 wxString gpath = L"C:\\Users\\x\\Desktop\\practice\\猫犬象aAbB猫猫猫犬犬あいう.txt"; wxString word = L"猫"; wxString result; size_t pos = 0; wxMessageBox(_T("ループ 処理開始")); while ((pos = gpath.find(word, pos)) != wxString::npos) { result += wxString::Format(L"%d\n", pos); pos += word.size(); wxMessageBox(_T("ループ 判定処理に戻る")); } OutputDebugStringW(result.c_str()); pos + 1はpos += 1のタイポだと好意的に解釈するにせよ、それでも 「何故1なのか」が理解できてないのはちょっとまずい。 ifとwhileの区別が付いてないのもかなり厳しい。 charとwchar_tの違いについてとか、 1. (pos = gpath.find(word, pos)) != wxString::npos 2. pos = gpath.find(word, pos) != wxString::npos は全く意味が違う、とか。 wxWidgets以前に、まず基本的な文法を押さえることから始めた方がいいと思う。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/405
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 555 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s