【GUI】wxWidgets(旧wxWindows) その4【サイザー】at TECH
【GUI】wxWidgets(旧wxWindows) その4【サイザー】 - 暇つぶし2ch569:564
09/10/17 07:21:35
>>566
wxGTKは使わないから知らんが,

> WindowsでwxGridでIME ONのまま入力を開始しても、フォーカスが当たってる
> セルが編集モードにならない。

いつの話?
wxWidgets2.8.10(安定版最新)ではそんなことにはならないが...

で、俺は別に wxWidgets > Qt と主張したいわけじゃない。

>>567の言うとおり,QtにはNOKIAが付いたし,日本ではSRAがサポート
してるから安心感はある。以前LGPLについて詳しく問い合わせた時も,
ちゃんとした回答がすぐ返ってきた。

ただ,まともなRADツールがない。Qt Creatorは今のところ失格。
安定感、使い勝手とも×。自分だけで使うならいいかも知れないが、
チーム全体で使えるような代物じゃない。

Visual Studio用のアドオンも隣の席のヤツに評価してもらったが、
Visual StudioのIDEがQt用のRADツールに変身するわけじゃない
そうで、俺も見せてもらったが、大したもんじゃないなぁと思った。

3rdパーティー製でもいいから、VBやC++ Builder/Delphi並に
サクサク仕事のできるQt用のRADツールってないのかな。

今までC++ Builderで仕事してきて、工数が小さく仕事ができるので
非常に助かってたんだが、C++ Builderの雲行きが怪しくなってきた
ので、今のうちに他をあたっとこうと思って評価中なんだ。

570:デフォルトの名無しさん
09/10/17 09:22:29
お前さんは隣の席のやつに絶大な信頼を置いてるのかもしれないけど
俺らにとってはどうでもいいわけで・・・
煽ってるわけじゃなくてな

571:デフォルトの名無しさん
09/10/17 09:31:54
つーか、C++Builder並のRADはありえんだろ。要求高すぎw
LazarusのC++実装とか?


572:デフォルトの名無しさん
09/10/17 11:12:33
↑wxWidgetsなら,Code::Blocks,DialogBlocks,wxDev-C++あたりが
かなり近い線まで行ってる。

573:デフォルトの名無しさん
09/10/17 11:33:20
昔は、

wx はネイティブのラッパーだから OS の変化に追随してくれる
Qt は独自実装だから OS のルック&フィールが必ずしも反映されない

って感じがしてたけど、今でもそうなのかな。
あと Qt は moc がね…

574:デフォルトの名無しさん
09/10/17 11:39:54
オライリーのqt4の本には、
Windowルック&フィールはWindowsでしか使えません。
なぜならWindowsコンポーネント使っているから(MacOSXも同様)
みたいなこと書いてあったと思うんだが・・・

昔の話じゃね?独自実装なのは。
もちろんMotifとかは独自実装だけど。

575:デフォルトの名無しさん
09/10/17 11:43:25
独自実装なのもあるし、そうじゃないのもある(´・ω・`)

576:デフォルトの名無しさん
09/10/17 11:49:58
今のQtはWindows上ではWindowsの部品使うし、なんとGnome上では
GTKの部品を使って描画するので、ルックアンドフィールの統一感はあるよ。

577:デフォルトの名無しさん
09/10/17 11:51:51
逆にGTK+がQtの部品使って描画するのってある?

578:デフォルトの名無しさん
09/10/17 11:52:34
Qtって独自の文法なかったか?あれは躊躇する。

579:デフォルトの名無しさん
09/10/17 11:57:48
独自の文法は無い。
ただのマクロ

580:デフォルトの名無しさん
09/10/17 12:05:23
独自のマクロはデバッグが面倒くさそうだ

581:デフォルトの名無しさん
09/10/17 12:31:31
>>572
そのレベルならQt Creatorと大差ないじゃん。まぁバギーなのはあるが。

582:デフォルトの名無しさん
09/10/17 12:46:45
Windows上でQt Creator使っているけど、
まぁ、試用レベルなんだけど落ちたことは無いなぁ。

Qt Creatorに後何が加われば、C++ Builder/Delphiなみと
いえるのだろうか? 個人的にはGo to Slotがわかりにくかった。

プロパティリストの欄のタブを変更すると
イベントハンドラ(Slot)リストがあるべきだろw
オブジェクト名が変更されると、Slot名も追尾してくれると嬉しい。

リファクタリングブラウザ機能は最近の先進的なIDEならついているけど、
昔からIDE使ってきている俺としては、あればラッキー無いほうが普通だと思ってるw

そんくらいだなぁ。

583:デフォルトの名無しさん
09/10/17 13:14:35
Qt Creatorが良い線いってると思って使ってる僕は異端児なの?

584:デフォルトの名無しさん
09/10/17 13:16:36
>>581
使ってみて言ってる?
俺は全部評価したが、Qt Creatorは今のレベルじゃ使う気にならない。
つーか今までC++ Builder一本槍だった開発部隊全員に使わせるのは
きつい。痒いところに手が届かなすぎ。

Delphi/C++ Builderなんかに比べるとかなり劣る。
>>572で挙げた3つは、Delphi/C++ Builderに肉薄するレベルに達してる。

Qt用でもっとまともなRADツールがあれば、wxWidgetsより安心感のあるQt使いたい
んだが。Qt Creator一つしかないってのが痛い。もちろんQt Creatorの今後の動向は
ウォッチするつもり。

SRAにLGPLのサポート料払ってヤンヤ言ったらQt Creatorどんどん改良してくれんかな。

>>582

> Qt Creatorに後何が加われば、C++ Builder/Delphiなみと
> いえるのだろうか? 個人的にはGo to Slotがわかりにくかった。

それもまぁ一つだね。全体的に操作が直感的でない気がする。
VC++使ってたヤツもそう言ってたから、C++ Builderに慣れすぎてる
からだとばかりも言えないようだ。

> プロパティリストの欄のタブを変更すると
> イベントハンドラ(Slot)リストがあるべきだろw
> オブジェクト名が変更されると、Slot名も追尾してくれると嬉しい。

これも同意。

一番大きいと思ったのは、いろんな設定がGUIからロクにできないこと。
.proファイル(だっけか?)にテキストで書けって...

585:デフォルトの名無しさん
09/10/17 13:36:00
>>584
もちろん使ってみて言ってる。

Code::Blocks,DialogBlocks,wxDev-C++あたりとQt Creatorはどっちもどっち
だなあと思う。俺はQt Creator のGo to Slotは「なるほどこういう手もあるね」
と感心したクチで、ダブルクリックだけが正解じゃないと思った。

ちなみに俺も仕事のメインはDelphiだからあの操作性を求めるのはわかるよ。
でもDelphiと同じ動きで作業できるかよりはそのツールなりの操作性がこなれ
てるかどうかの方が重要だと思う。そういう意味ではCode::Blocksでいいんで
あればQt Creatorでもいいと思うし、「あんなのDelphiに比べれば糞」と言えば
どっちも糞だと思う。

よって、職場のチーム丸ごと「C++Builderやめて○×にしようぜ」と言える
ツールはまだなくって、でも「wx(あるいはQt)で開発してください」という
仕事が来た場合には十分できる環境がある、というのが現状だと思っている。

586:デフォルトの名無しさん
09/10/17 13:44:20
仕事でQt Creatorつこうてる僕は何(´・ω・`)

587:デフォルトの名無しさん
09/10/17 13:55:51
>>584
> 使ってみて言ってる?
> 俺は全部評価したが、Qt Creatorは今のレベルじゃ使う気にならない。

お前の方こそ、使ってみていっているとは思えない。
つまり、中身が何も無い。

使ってみたという証拠を出せ。

588:デフォルトの名無しさん
09/10/17 13:58:34
Qtの宣伝うぜえな
スレ違いだからよそでやれ

589:デフォルトの名無しさん
09/10/17 14:31:54
>>585
> Code::Blocks,DialogBlocks,wxDev-C++あたりとQt Creatorはどっちもどっち
> だなあと思う。俺はQt Creator のGo to Slotは「なるほどこういう手もあるね」
> と感心したクチで、ダブルクリックだけが正解じゃないと思った。

この辺は感じ方の違いもあると思うが、「ダブルクリックだけが正解じゃない」というのは同意。その辺は
たいした問題じゃない。やっぱりコンパイラオプションやリンカオプション、子プロセスとしてコンパイラや
リンカを起動する場合の環境変数の設定あたりがやりにくいのが俺には受け入れ難い。あるいはQt Creato
r評価した際に取り組みが足りなかったのかもしれん。

> よって、職場のチーム丸ごと「C++Builderやめて○×にしようぜ」と言える
> ツールはまだなくって、でも「wx(あるいはQt)で開発してください」という
> 仕事が来た場合には十分できる環境がある、というのが現状だと思っている。

ウチはソフトの受託開発をやってるわけじゃないので、ちょっと事情が違うかな。自社製品用のソフトを開発
してるので、自分達で今後を決めていく環境にある。顧客別のカスタマイズが非常に多いので、少々環境
設定なんかのスキルの低い人間でもサクサクっと作れる事が第一優先なので、面倒見の大変なのはチト困る。

>>586
それは使いこなせるスキルがあるとも言えると思うよ。

>>587
おいおい、Qt Creatorにケチつけられたのがそんなに気にくわんか? 「中身がないって」>>584に書いたことじゃ
足りないか? 「証拠を示せ」ってどうやって示すんだ?まずは見本を見せてくれ。
俺は何度も書いたけどできればQt使った方が安心感があると思ってるんだが、RADツールの問題で躊躇してる
だけ。Qt Creatorが早く改良されればベストだと思ってる。

>>588
俺がQt Creatorの批判したから、俺にも責任あるね。まぁ、ここはQtスレに比べたらずっと書き込み少ないから、
それだけマイナーだってことなわけで、wxWidgetsの方が形勢不利なのは目に見えてる。
つーか、他のwxWidgets派は応援してくれんのか...

590:デフォルトの名無しさん
09/10/17 16:16:41
エディタでゴリゴリ書くのが好きだから…

591:デフォルトの名無しさん
09/10/17 16:20:47
俺もエディタ派

592:デフォルトの名無しさん
09/10/17 17:55:59
エディタ派って単に慣れているからってだけじゃ・・・
キーバインドだけのために、新しい優れたものを使えない体に
なってしまっただけじゃ・・・

593:デフォルトの名無しさん
09/10/17 17:58:48
何でそういう難癖を付けたくなったのかは知らんけど、それは間違いだぜ。
昔からツールボックスアプローチとキッチンシンクアプローチという概念があるんだ。
この世界で『真に新しくて優れたもの』なんてそうそう無いよ。

594:デフォルトの名無しさん
09/10/17 18:58:29
IDEはツールボックスだけのものじゃないし。
開発するとき、ヘルプ見ない?
ヘルプ見るのならIDEは便利だよ。

595:デフォルトの名無しさん
09/10/17 19:02:38
俺はヘルプを見るときはウェブブラウザってのを使ってる。
分からないメソッドを右クリックするとグーグルというので情報を探してきてくれる。
これ結構便利だよ。

596:デフォルトの名無しさん
09/10/17 19:19:18
>>594
まぁ冗談はさておき、エディタ派の人は最新の IDE がどういう物かは
知った上でエディタでコーディングする事を選んでるんだよ。
君がウェブブラウザやグーグルを知ってるのと同じくらいね。

それと当然だけどエディタだけを使って開発している訳じゃないよ。
エディタを補助するツール群を揃えているから、ソースを書く時には
エディタだけで十分という作業スタイルなだけで。
IDE にプラグインを入れまくる人って居るでしょ。その逆だと思えば良い。
IDE から機能を削ぎ落として、テキスト入力以外の機能は別のツールを
組み合わせて使っているんだよ。だからいわゆる IDE は必要ないのです。

597:デフォルトの名無しさん
09/10/17 19:26:35
エディタを使うメリットは、ネットブックでも動作が軽快な事、
他の環境に移行し易い事、問題があっても自分で直し易い事かな。
他にもあると思うけど、今思いつくのはこれくらい。

598:デフォルトの名無しさん
09/10/17 20:11:21
うーん。
やっぱりコード書いている途中にピリオドを押したら
すぐにヘルプ見るのと同じ効果があるってことは
思いついていないみたいだ。エディタ使っている人は。
なんかギャップを感じるね。

599:デフォルトの名無しさん
09/10/17 20:12:44
シェルの補間機能があるのと
ないぐらい以上の差があるのにね。

600:デフォルトの名無しさん
09/10/17 20:16:20
全てを記憶しているから問題無い

601:デフォルトの名無しさん
09/10/17 20:23:59
>>598
Qt のスレでもピリオドに拘ってる人が居たけど、要らない物は
要らないとしか言いようが無い。それが便利だと思ったら
愛用のエディタに手を入れるか IDE に転ぶかするだろうけど、
今のところは必要ないよ。引き算ができない人は機能一覧を埋める
事ばかり考えるけど、そういう人ばかりじゃないという事です。

人によって考え方や作業フローが違うという事を受け入れられない内は
理解するのは難しいと思われ。

602:デフォルトの名無しさん
09/10/17 20:30:09
シェルの補完機能でも zsh の最新版の高度な機能を欲する人も居れば
csh レベルで良いから軽い方が嬉しい人も居る訳で。

まさかその違いが分からない訳じゃないよね?

603:デフォルトの名無しさん
09/10/17 20:42:47
まぁ、自分が欲しい物を他人も必ず欲しがると思うのがナンセンスなんだよな。
世界に価値基準が一つしか無いと思ってると大人になって苦労するぞ。

604:デフォルトの名無しさん
09/10/17 20:46:04
欲しいか欲しくないかは個人の趣味だけど、
便利か便利じゃないかといえば、
IDEの方が便利だよな。

605:デフォルトの名無しさん
09/10/17 20:49:34
便利かどうかを判断する価値基準は無数にあるんだよ

606:デフォルトの名無しさん
09/10/17 20:54:34
>>604
俺にとってはIDEじゃない方が便利
そういう話だ

607:デフォルトの名無しさん
09/10/17 20:56:12
>>604
扇風機と団扇はどっちが便利?
掃除機と箒は?

608:デフォルトの名無しさん
09/10/17 20:59:42
>>604
自動車があるのに自転車に乗るのは馬鹿な事なの?
それとも自動車と自転車を一緒くたに考える人が馬鹿なの?

609:デフォルトの名無しさん
09/10/17 21:25:54
吊りだとわかってても反応したくなるな
箒や扇子は電気の無い家の外で使えるから便利だし
自転車は狭い路でも走れるから便利っつー話なんだが


610:デフォルトの名無しさん
09/10/17 21:37:53
要らん時までパカパカ補間ウインドウひらくわりに肝心なときには補間できないという難点がある品。
調べたいことがあったらその時バッファにカーソル下の該当ワード拾ってヘルプウィンドウ開くさ。
Windows流の窓最大化文化ばかりが全てじゃないって話。

611:デフォルトの名無しさん
09/10/17 21:53:39
一つ気になるのは、PyQtを動かすためにQtが必要であること。
まぁQtへのバインディングと考えれば必要なのは理解できるんですが、
これを各マシンにインストールするのは面倒すぎます。
もし可能であればネットワークにQtを置いて、環境変数でそこを指すようにして、
ネットワークで共有、ってことをやりたい。
それが出来るんならまぁ使ってもいいかな、って気がします。

ところで、wxPythonと比較してPyQtは何に優れてるんですかね。
AutodeskがPyQtを推す意味って何なんだろうか。



612:デフォルトの名無しさん
09/10/17 21:53:54
>>609
電気があれば扇風機の方が涼しいし、ウチのオフィスの清掃業者は掃除機を使ってるよ。
ちょっと遠くへ行く時や、同じ距離でも雨の日や荷物がある時は自動車が便利。
便利という指標は考え方や使う人、使う状況によって変わるものだよ。清掃業者が
箒を使わない事を批判している人が居たら、それはちょっとまずい人に見えるよね?

コーディングを行う際にエディタが便利か IDE が便利かも同じ事。
IDE が生まれたのは Smalltalk や Lisp Machine まで遡れる訳だから 30 年以上は
経っている訳だよね。IDE は素晴らしく見えるかもしれないけど、別段新しい物でも
ないんだぜ。この手の論争は少なくとも 10 年以上前からあるし、多分もっと昔から
宗派に分かれて戦ってきたんだろうけど、結論は変わらず『好きな物を使え、他人の
主義にケチをつけるな』だよ。結局、どっちが便利かなんて使う人次第なんだから。

613:デフォルトの名無しさん
09/10/17 22:32:31
> これを各マシンにインストールするのは面倒すぎます。
なぜ?

> もし可能であればネットワークにQtを置いて、環境変数でそこを指すようにして、
> ネットワークで共有、ってことをやりたい。
そっちの方が面倒すぎます。

現にあなたやり方すらわかって無いでしょ?

614:デフォルトの名無しさん
09/10/17 22:38:41
スレタイ見てくれw

615:デフォルトの名無しさん
09/10/17 22:47:18
wxPython+py2exeで造ったプログラムって
wxWidgetsが入っていないPCでも動くよなぁ

>PyQtを動かすためにQtが必要であること
必要なの?

616:デフォルトの名無しさん
09/10/17 23:01:45
py2exeがwxWidgetsライブラリを含めた実行ファイルを作るから。

617:デフォルトの名無しさん
09/10/17 23:03:07
それってQtも同じじゃね?

618:デフォルトの名無しさん
09/10/17 23:41:36
う、うん……(´・ω・`)

619:デフォルトの名無しさん
09/10/18 00:02:50
なんかIDE論議になってるけど,IDEの一番のメリットはデバッガーだと思うんだが。
そりゃコマンドライン派はgdbやcdbでもソースレベルデバッグできると言うだろうが...

IDEのエディタ上で,デバッグ中に変数にマウスカーソル当てると,中身がツール
チップヘルプで表示されるなんて,この上ない便利さだと思わない?

少数のエキスパートを除いて,最大公約数的どちらが仕事が速く出来るか?
と言われれば,やはりIDEの優位性は揺るがないだろう。

620:デフォルトの名無しさん
09/10/18 00:05:12
そういう細かい点を日ごろ使って無い人は
わからないんだろうね。

621:デフォルトの名無しさん
09/10/18 00:05:38
>>611
>一つ気になるのは、PyQtを動かすためにQtが必要であること。

wxPythonを動かすためにwxWidgetsが必要なのは気にならないの?

622:デフォルトの名無しさん
09/10/18 00:17:45
スレが伸びてたからwktkして開いたのに何これ?

623:デフォルトの名無しさん
09/10/18 00:30:51
>>619
論点がずれてる。
元々は >>592 にある様に IDE を使えないのは能力の衰えた人という話だった。
君が言う様に IDE を使わないのは少数のエキスパートという事だと、話が真逆。
議論に乗り遅れたのはかわいそうだけど、元々の話と内容が変わってるから、
続けたいなら別スレ立てた方が良いんじゃない?

これだけやっておいてなんだけど完全にスレ違いだしさw

624:デフォルトの名無しさん
09/10/18 00:44:47
ではIDE対エディタの続きはこちらでどうぞ
スレリンク(prog板)

625:デフォルトの名無しさん
09/10/18 02:11:59
>621
URLリンク(blog.taikomatsu.com)メモ/

626:デフォルトの名無しさん
09/10/18 07:17:41
>>623
もうやめとくけど,>>619 に書いた「エキスパート」は皮肉だよ。真に受けないで欲しかった。


627:デフォルトの名無しさん
09/10/18 07:24:49
もうやめとくと言いながら未練がましく最後っ屁をかますとは人間ができてますなあ

↑皮肉ってこういう事だよ

628:デフォルトの名無しさん
09/10/18 07:26:08
あ、真に受けないでね

↑これも皮肉

629:デフォルトの名無しさん
09/10/18 07:50:53
>>619 が皮肉になっていないのは捻っているようで全く捻ってないから。
『エキスパートは IDE を使わないでも仕事が速く出来る』という命題は
文字通り解釈出来てしまうから皮肉にならない。

むしろ『中身がツールチップヘルプで表示されるなんて,この上ない
便利さだと思わない?』という表現の方が皮肉っぽいよ。例えば
『中身がツールチップヘルプで表示されるなんて,この上ない便利さ
だと思わない?(見た目に騙される初心者め)』みたいな感じで
解釈可能だからね。『ツールチップヘルプ? ログに残したい時は
どうするのさ。デバッガの使い方くらい覚えた方が良いぜ』みたいに
続けると良い感じかもね。

もしまだ続きがしたいなら >>625 のスレへどうぞ。

630:デフォルトの名無しさん
09/10/18 07:51:40
あ、スマソ。>>624 のスレでした。

631:デフォルトの名無しさん
09/10/18 07:54:03
Python書くときはvim、C書くときはEmacsだけど
JavaはEclipse、趣味はDelphiな俺が通りますよ~。

ぶっちゃけどれもそれぞれ使い安いよ。最高!

632:デフォルトの名無しさん
09/10/18 08:37:43
Java/Python/LaTeX → Eclipse
C/C++ → Visual C++
その他 → Emacs

633:デフォルトの名無しさん
09/10/18 09:47:11
ログに残したいときはそうすれば良いし、
ツールチップでも見れること何が悪いのか
さっぱりわからんw

ツールチップという見た目に対して文句つけてるの?

634:デフォルトの名無しさん
09/10/18 10:07:37
>>633
ツールチップで見られるならそれは便利だろう
でもだからといって、他の難点に目をつぶってIDEを使う気にはなれない
エディタ全体・IDE全体としてどうかという話

635:デフォルトの名無しさん
09/10/18 14:15:37
このスレ、スレタイ間違ってる?
IDEのスレなのになんでwxナントカって書いてあるけど…

636:デフォルトの名無しさん
09/10/18 14:24:25
wxナントカはもう死にました。

637:デフォルトの名無しさん
09/10/18 14:34:12
そっか。じゃあIDEの話で盛り上がっていいんだね?!

638:デフォルトの名無しさん
09/10/18 15:13:18
まずIDEの議論をして、その結果の良いIDEをwxで実現する予定です

639:デフォルトの名無しさん
09/10/18 15:15:18
すみません
wxPython-src-2.8.10.1をインストール死ようとすると
wxWidgetsのコンパイルは性交したらしいのですが
build途中で死ぬんです


640:デフォルトの名無しさん
09/10/18 15:20:35
639 途中でした

src/gtk/_gdi_wrap.cpp: In function ‘PyObject*
_wrap_DC_SetDeviceClippingRegion(PyObject*, PyObject*, PyObject*)’:
src/gtk/_gdi_wrap.cpp:20612: error: ‘class wxDC’ has no member named
‘SetDeviceClippingRegion’
src/gtk/_gdi_wrap.cpp: In function ‘PyObject*
_wrap_GraphicsRenderer_CreateBitmap(PyObject*, PyObject*, PyObject*)’:
src/gtk/_gdi_wrap.cpp:31407: error: ‘class wxGraphicsRenderer’ has no
member named ‘CreateBitmap’


641:デフォルトの名無しさん
09/10/18 15:24:22
環境は?
環境設定ミスってないか?

642:デフォルトの名無しさん
09/10/18 16:23:13
パッチが出てるみたい

URLリンク(code.google.com)

--- wxPython/src/gtk/_gdi_wrap.cpp.orig 2009-08-08 16:26:48.000000000 +0200
+++ wxPython/src/gtk/_gdi_wrap.cpp 2009-08-08 16:32:50.000000000 +0200
@@ -4195,6 +4195,10 @@
     virtual wxGraphicsBrush CreateRadialGradientBrush(wxDouble , wxDouble , wxDouble , wxDouble , wxDouble ,
                                   const wxColour &, const wxColour &)  { return wxNullGraphicsBrush; }
     virtual wxGraphicsFont CreateFont( const wxFont & , const wxColour & ) { return wxNullGraphicsFont; }
+
+    // patch required as explained in
+    // URLリンク(groups.google.com)
+    wxGraphicsBitmap CreateBitmap( const wxBitmap &bitmap ) const { return wxNullGraphicsBitmap; }
 };


643:デフォルトの名無しさん
09/10/18 17:59:42
>>642
出来ました
ありがとうございました


644:デフォルトの名無しさん
09/10/18 22:28:11
ライブラリAPI使いまくりの部分はIDEが断然楽だけど、
自前コードが多いとこは、なれたエディタのほうが軽快かな

645:デフォルトの名無しさん
09/10/19 00:09:56
wxWidgetsってネイティブ以外にonGTKとかonX11とか
あるんだからonQtっつーのも有っても良いような気がする


646:デフォルトの名無しさん
09/10/19 01:01:32
>>645
同意。

647:デフォルトの名無しさん
09/10/19 05:43:27
>>644
なんでIDE vs エディタ論争になるのかぜんぜんわからん。
俺は両方使い分けてる。IDEの外部ツールに使い慣れたエディタ登録
して,エディタ編集したくなった時は起動すれば,現在編集中の行・列
にカーソルがある状態で編集開始できる。
排他制御問題も,IDE側/エディタ側の双方の設定で解決できるし。

...ってそういう話じゃないのか?

648:デフォルトの名無しさん
09/10/19 06:10:25
>>647
話の腰を折るな!

649:デフォルトの名無しさん
09/10/19 07:34:16
はぁ?
オマエ見当違いすぎ

650:デフォルトの名無しさん
09/10/19 08:35:32
いいからどっちも他のスレでやれ

651:デフォルトの名無しさん
09/10/19 23:15:17
ケンカはやめて(><)

652:デフォルトの名無しさん
09/10/20 03:38:19
私のために…

653:デフォルトの名無しさん
09/10/20 03:39:02
「赤いきつね」と「緑のたぬき」の具材を強化した新商品が、
コンビニ限定商品として10月19日から販売が始まった。

654:デフォルトの名無しさん
09/10/20 09:24:18
私のために?

655:デフォルトの名無しさん
09/10/20 11:13:38
争わないで!

656:デフォルトの名無しさん
09/10/20 12:05:33
もうこれ以上

657:デフォルトの名無しさん
09/10/20 13:15:41
すれ違いの話を

658:デフォルトの名無しさん
09/10/22 07:52:30
今、VC++2008でwxWedgetsプログラミングしてるんですけど、
他のパソコンでも実行できるようにしたいんですけど、
どのdllをリンクさせる必要がありますか?
何か教えてください(> <)

659:デフォルトの名無しさん
09/10/22 08:17:27
それは使ってるもジールによって変わるから
別のPCでエラーが出なくなるまで
必要なファイルを順番に追加(ry

660:デフォルトの名無しさん
09/10/22 08:19:14
これのことじゃね?
Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)
URLリンク(www.microsoft.com)

661:デフォルトの名無しさん
09/10/22 18:15:10
wxCodeのwxThingsに含まれるwxSpinCtrlDblが使いたくて,SourceForgeからダウンロードしたら,
やたら古くてコンパイルエラーが出るので,SVNでチェックアウトしたらwxCodeからwxThingsが削除
されてた。でもCVSリポジトリを下記のURLでブラウズすると含まれている。

URLリンク(wxcode.cvs.sourceforge.net)

なのでSourceForge.jpにユーザー登録してCVSでチェックアウトしようとして,SSHの公開鍵を
登録しようとしたら,シェルアカウント情報:に「どのプロジェクトにも所属していないため、
UNIX シェルアカウントはありません。」と書かれていて登録できない。
SourceForge.netの方にもユーザー登録したけど,やっぱり公開鍵の登録ができない。

CVSからwxThigsをチェックアウトする方法があったら教えてください。

662:661
09/10/22 18:20:59

ちなみにpserver経由のAnonymoousログインではパスワードを求められたのでパスワードなし
でログインしようとしたらはじかれた。

663:デフォルトの名無しさん
09/10/23 01:37:08
>>661
pserverでちゃんと取得できたぜ
やり方間違ってたんじゃないの?
URLリンク(sourceforge.net)
cvs -d:pserver:anonymous@wxcode.cvs.sourceforge.net:/cvsroot/wxcode login
cvs -z3 -d:pserver:anonymous@wxcode.cvs.sourceforge.net:/cvsroot/wxcode co -P wxCode/components/wxthings


664:661
09/10/23 10:16:54
>>663
そのサイトにからコマンドラインをその通りにコピペして実行したんだけど,ログインの段階で
でパスワードを求められて,何も入れずにEnter押すとはじかれる。

Windows XPのコマンドプロンプトでTortoiseCVSに含まれてるcvs.exeでやったんだけど
(PATHを通しておいて),何かまずいのかな?

わざわざ試してくれてありがとう。
「出来た」と言う情報だけでも助かる。昨日はサーバー側に何かあったとか言う可能性もあるし,
コマンドライン版のCVSだけダウンロードしてやってみるとか,幾つか試してみます。

665:661
09/10/23 11:24:28
>>663
原因判明。会社のFirewallでCVSのポート(2401)が閉じられてた。
恒久的に開けるには手続が必要で数日かかるとのことなので,一時的にあけてもらって
無事チェックアウト成功。

アリガト。

666:デフォルトの名無しさん
09/10/24 00:08:53
wxDev-C++は現在のVer.7.xを最後にDelphiでの開発をやめて、wxWidgets+C++に移植して
新たにwxDevIDEと言う名前で再スタートするらしい。

URLリンク(wxforum.shadonet.com)

まだ中身はないけど、既にHPも作成されているし、SourceForgeにも登録されてる。

URLリンク(wxdevide.sourceforge.net)
URLリンク(sourceforge.net)

SourceForgeではSVN上で開発が進められているのがわかる。

今までDelphi 6で開発されてたので、Vista以降のWindowsでは開発環境すら起動しなく
なるだろうからどうするのかなぁと思ってたら、思い切った改革に乗り出した。
建前は「メンテナンスと改良が難しくなったから」と書いてあるが...

wxDev-C++は使いやすいし、All in oneでインストールできる(MinGWや、MinGWと
VC++用のビルド済wxWidgetsライブラリも付いてくる)のでラクチンだけど、Delphi
で開発してると知って尻込みしてたんだが、wxDevIDEが起動に乗ったらWindows上
ではC::Bと戦える(思想は対照的かもしれないけど)強力なRADツールになるかも。
Linuxへの展開も狙ってるみたいなこともチラッと書いてある。

ついでにTDM's MinGWにも対応してくれると嬉しいんだが...
αテスター募集してるみたいだから参加してみようかな...

667:デフォルトの名無しさん
09/10/25 13:41:10
既出かもしれませんが、wxTextCtrlで日本語入力(ATOK)中にESCを押すとIME
ではなくダイアログを抜けるので、それまで確定した内容が消えてしまいます。
入力中だった文字はそのままの状態で消えたダイアログの親に行きます。

IME入力中のESCキーがIMEのウィンドウ?に飛ばず下のDialog or TextCtrlに
飛んでいるように見えますがが、回避するにはどこを見たらいいでしょうか。

668:デフォルトの名無しさん
09/10/25 14:49:33
うちはそんなことないよ

669:デフォルトの名無しさん
09/10/25 15:04:00
>>667
環境を書かないと。OSもコンパイラもバージョンも何も書いてないんじゃ...


670:667
09/10/25 15:33:48
>>669
失礼しました。WindowsXP SP3 / ATOK2008 です。
RapidSVN 0.12.0 のリリース物件なのでコンパイラはちょっとわからないですが、
バージョン情報には wxWidgets 2.8.9 とあります。
Audacity 1.2.5 (wxWindows 2.4.2) の設定ダイアログでも同じことが起きています。

671:デフォルトの名無しさん
09/10/25 15:43:14
ATOK2008

672:デフォルトの名無しさん
09/10/25 16:04:43
>>667
IME関係なくESCだけ押してみたけどDialog閉じないよ
自分で書いたコードでなんか拾ってるんじゃないの?

673:デフォルトの名無しさん
09/10/25 17:06:11
・何がしたいのか
・現状どうなっているのか
・それに対する自分の意見
・自分の環境は何なのか(OS,CPU,GPU)
・IMEを他のものにして同じ症状があるのかどうか、ないならそのIMEは何なのか。

・可能ならサンプルをアップローダーに。

このくらいは質問するなら情報として欲しいわ。

674:667
09/10/25 19:02:54
>671
MS IME 2002 でも同じでした。
Off の状態でも同じ動作をしますが、これは開発者が意図したものだと思います。
>672
ESC キーでダイアログが閉じるのは wxDialog の標準的な動きではないという
ことですか?
このへんを追っかけてみるとCommitDlgがキーボードのイベントを拾っている所は
見つけられなかったんですが、どうでしょうか。
URLリンク(rapidsvn.tigris.org)
URLリンク(rapidsvn.tigris.org)
>673
>何がしたいのか
コミッターでも何でもないですが、RapidSVN で上述のような現象が起きて不便
なので、パッチを投げたいです。

675:デフォルトの名無しさん
09/10/25 19:39:58
キャンセルボタンを貼り付けてなければ閉じなかった
デフォルトボタンが拾ってると思う

676:デフォルトの名無しさん
09/10/26 10:52:28
>>658
static link で作ればいいと思うよ。
リリース版を、マルチスレッド/DLL じゃなくて、マルチスレッド(/MT)にする。

677:デフォルトの名無しさん
09/10/26 10:55:24
>>674
ESCでダイアログが閉じるのはWindowsの基本的な動作。
>>675 が言うとおり、キャンセルボタン(wxID_CANCEL だっけ?)があるとそうなる。
回避したいのであれば、ボタンを標準じゃなくて、自分でwxButtonで作って、
適当な ID を割り振ればいいんじゃないかな?

678:デフォルトの名無しさん
09/10/26 11:27:10
なるほど、未確定中にESC押すと入力文字が消え、その後再度ESC押すとダイアログが閉じるのが
普通の動作だが、RapidSVNは未確定文字のキャンセルとダイアログのクローズが同時に起こるな。

679:658
09/10/26 14:56:45
>>676

返信ありがとうございます。
マルチスレッド(/MT)でコンパイルだと一筋縄でいかないようで、
LIBCMT.libを無視するように設定したりしたら、エラーが減ったんですが、最後、

1>リンクしています...
1>xxx.obj : error LNK2001: 外部シンボル ""public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ)" は未解決です。
1>E:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\morphingpot_v1a\Release\xxx.exe : fatal error LNK1120: 外部参照 1 が未解決です。
1>ビルドログは "file://e:\Documents and Settings\xxx\My Documents\Visual Studio 2008\Projects\xxx\xxx\Release\BuildLog.htm" に保存されました。
1>xxx - エラー 2、警告 0

のエラーが対処できません。
コンパイルしているのは、サンプルでOpenGLを使ってるプログラム、penginをベースに変更したものです。
しかし、一番簡単なサンプル、minimalでもこのエラーは発生するみたいです。

680:デフォルトの名無しさん
09/10/26 15:39:40
>>679
string.cpp 150行目

#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL)
# pragma message (__FILE__ ": building with Multithreaded non DLL runtime has a performance impact on wxString!")
void wxStringData::Free()
{
free(this);
}
#endif

ってなってるから、DLLだとうまくいかないけどstaticリンクなら大丈夫なはず
なんか間違ってない?

681:658
09/10/26 18:07:00
>>680
またも返信ありがとうございます。
あれからいろいろありました。

まず、レスについてですが、stringのソースはその通りでした。
それから、staticリンクというのがよくわからないので、
どうすれば良いかよくわからないです。


それと、一応解決しました。
マルチスレッドDLLでコンパイルしたものの、Releaseファイルの中で、
wx_dll.dspをビルドした時に出てきた、
C:\wxWidgets-2.8.10\lib\vc_dllにあるdllファイルを入れたら、
一応動きました。
なんかもう今はとりあえず動けば良いのでこれで良いです。

682:667
09/10/27 01:08:50
>675 >677
ESCでID_CANCEL,ENTERでID_OKの動作になるのはWindowsの仕様なんですね。

>678
samples/dialogsの[Entry dialogs][Text entry]で再現しました。(2.8.10 w/ VC2005)

textctrl.cpp の OnKeyDown, OnChar, MSWShouldPreProcessMessage
window.cpp の MSWProcessMessage, MSWShouldPreProcessMessage には
ESC(IME on/off とも)の入力が飛んでこないようです。
どこなら引っ掛けられますかね?

683:デフォルトの名無しさん
09/10/27 10:37:38
>>681
それだと MSVCRT(のDLL) がない環境で動かないかも?
/MT で使う場合は wxWidgets のライブラリも /MT でコンパイルしないと駄目だけどやった?

684:デフォルトの名無しさん
09/10/27 10:39:56
>>682
確かダイアログの場合は特殊で ESC を雄と WM_COMMAND の ID_CANCEL が
飛んでくるんじゃなかったっけ?
wxWidgets の場合は…なんだっけ、EVT_? マクロを使うんだったかな?

685:デフォルトの名無しさん
09/10/27 12:42:25
>>682
IsDialogMessage()あたりだろうと探してたりしてみたけど、結局同じwindow.cppにある
キーボードフックからESCを検出して独自にIDCANCEL送ってるわ。
フック周りをIMEを意識した作りに直さないと無理そう。

686:デフォルトの名無しさん
09/10/27 12:46:10
一応送ってるとこ書いとくけど、dlgcmn.cppのwxDialogBase::OnCharHook()で呼んでる
EmulateButtonClickIfPresent(wxID_CANCEL)ね。

687:667
09/10/27 13:17:31
みなさんありがとうございます。FEP の On/Off で SetEscapeId() を
かけたら良さそうな気がした(まだ試してない)んですが、msw 以下の
ソースでも wx のヘッダばかり include してますよね。
仮に Imm 系の API を呼ぶようなパッチが作れたとして、wx の本家には
受け入れられないものですか?

688:デフォルトの名無しさん
09/10/27 13:42:48
各OS固有の部分はどうする?

689:デフォルトの名無しさん
09/10/27 14:54:57
あんまり場当たり的なことはよしたほうが・・・
とりあえず、実験的なコードだけどwindow.cppのwxKeyboardHook()の先頭で

HWND hWnd = GetFocus();
HIMC hIMC = ImmGetContext(hWnd);
BOOL immOpen = FALSE;
if (hIMC)
{
 if (ImmGetOpenStatus(hIMC))
 {
  int size = ImmGetCompositionString(hIMC, GCS_COMPREADSTR, NULL, 0);
  immOpen = (size > 0);
 }
 ImmReleaseContext(hWnd, hIMC);
}
とやって、immOpenがTRUEなら既存のルーチン、FALSEならそのままCallNextHookEx()
呼んだら希望の動きはしたよ。
でもまあ、imm32.libのリンクがいるし、この部分もLoadLibrary()+GetProcAddress()にして
リンク不要にしたらいいかもね。window.cppはWindows固有のコードみたいだしね。

690:デフォルトの名無しさん
09/10/27 15:05:00
おっとミス、TRUEとFALSE逆ね、まあわかると思うけど。

691:デフォルトの名無しさん
09/10/27 15:53:57
つまり EURT と ESLAF が正解。

692:デフォルトの名無しさん
09/10/27 16:59:38
>>691
暇人乙

693:658
09/10/27 18:17:38
>>683
一応やったけど、違うエラーがいっぱい出てきたので、
よくわかりませんでした。

694:デフォルトの名無しさん
09/10/28 10:49:43
>>693
違うエラーってどんなのよ。
VC++使ってんだよね?
手順説明すると、Releaseの構成を使うとしたらwxのプロジェクト開いた状態で、
ビルドメニューの構成マネージャ開いてアクティブソリューション構成のとこから
新規作成を選択、名前をMT Release とかにして、設定のコピー元をReleaseにしてOK押して
MT Releaseが選択されてる状態を確認したら、プロジェクトをシフトクリック等で全部選択して
右クリックでプロパティを出して、構成プロパティのC/C++のコード生成のランタイムライブラリを
マルチスレッド(/MT)にしてOK
その後ソリューションのビルドすりゃlibができるよ。


695:デフォルトの名無しさん
09/10/28 14:28:15
Adobe Source Librariesって使ってる人いる?
URLリンク(stlab.adobe.com)

ちゃんと見てないけど、これってwxWidgetsの代わりになるもんなのかどうだろう?

696:658
09/10/29 16:38:29
>>694
何処にも書いてなかった手順ありがとうございます。

しかしですが、
手順どおりやって、
サンプルプログラムminimalをマルチスレッドでコンパイルしたら、
1>wxbase28.lib(dir.obj) : error LNK2001: 外部シンボル ""void __cdecl operator delete(void *)" (??3@YAXPAX@Z)" は未解決です。
とか
1>wxbase28.lib(filefn.obj) : error LNK2019: 未解決の外部シンボル _strstr が関数 "public: __thiscall wxFile::~wxFile(void)" (??1wxFile@@QAE@XZ) で参照されました。
とかのエラーが
合計1740個出てきて、? でした。

前に色々いじったのが悪かった可能性がありますが・・・

697:デフォルトの名無しさん
09/10/29 16:47:37
>>696
すべての規定ライブラリの無視(/NODEFAULTLIB)を「はい」にしてないか?
いいえにしとけ

698:デフォルトの名無しさん
09/10/31 23:35:03
C++で初めてWxWidgetsを使ってプログラム書いてみています。
複数行のwxTextCtrlに、複数行の文を書いた状態で、GetLineText(0)のようにして、
任意の1行を取り出して、それをそのまま、wxMessageDialogでダイアログ表示させているのですが、
この1行が、半角のアルファベットの時などはきちんと1行全体が表示されるのですが、
この1行が、4文字以上の日本語の場合は、最後の文字だけが欠けて表示されてしまいます。
(例:あいう→あいう、あいうえ→あいう、あいうえお→あいうえ)

C++のほうも初心者ですのでどこか間違っているのかもしれませんが、
解決方法をご存知の方が居られましたら、教えていただけませんでしょうか。お願いします。

699:デフォルトの名無しさん
09/11/01 03:15:07
ソース貼れ

700:デフォルトの名無しさん
09/11/01 10:37:03
すみません。本当に質問そのままでしたのでソースを書きませんでした。失礼しました。
尚、開発環境は、Visual C++ 2008 Express Editionを使用しています。
wxWidgetsのバージョンは、2.8.10です。
以下、再現できるソースです。宜しくお願いします。

#include "wx/wx.h"
#include "wx/msgdlg.h"
class Test : public wxApp{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(Test)

bool Test::OnInit(){
wxFrame *mainf = new wxFrame(NULL,-1,wxT("サンプル"),wxPoint(-1,-1),wxSize(300,250),wxCLOSE_BOX | wxSYSTEM_MENU | wxCAPTION);
mainf->Show(TRUE);
wxTextCtrl *inp = new wxTextCtrl(mainf,-1,wxT("あいうえお"),wxPoint(0,0),wxSize(-1,-1),wxTE_MULTILINE,wxValidator(),wxT("Form0"));
wxMessageDialog *d = new wxMessageDialog(NULL,inp->GetLineText(0),wxT("サンプル"),wxOK,wxPoint(-1,-1));
d->ShowModal();
return TRUE;
}


701:デフォルトの名無しさん
09/11/01 11:56:49
見てみた。
EM_LINELENGTHがマルチバイトの文字でも文字数を返すのに
バイト数で確保してるせいだね。
あいうえお→5にNULL文字1+長さ指定のための2バイト確保で8バイト分しか用意してないから
「あいうえ」になるみたい。

702:デフォルトの名無しさん
09/11/01 12:19:22
なんか状況によるみたい、ググってもデバッグ環境での違いとかよくわからん。
UNICODE文字セットだとうちでは問題でないけど、どうかな?
manifest書けばいいのかもしれないが。

703:デフォルトの名無しさん
09/11/01 13:22:08
>>701
ありがとうございます。そういう原因でしたか。
素人なりに、EM_LINELENGTHまわりの処理をしているようなコードがないかと考え、
wxWidgetsのファイルを探したのですが、よくわかりませんでした・・・。
GetLineTextを使うのを諦めて、他に違う方法を考えるしか無いでしょうか?

704:デフォルトの名無しさん
09/11/01 14:31:27
ファイルの場所は、こないだ出たwindow.cppと同じくsrc/msw/にあるtextctrl.cppね。
XPの途中(SP2以降)から仕様変更ってほんまかいな。
うちで試したのはVista64で、たしかに文字数が返ってきてた。

そういやimm~もLibのリンク不要版書いたけど、見たい人いるかなあ。

705:デフォルトの名無しさん
09/11/01 15:07:19
UNICODE版に汁

706:デフォルトの名無しさん
09/11/01 15:57:38
>>705
アドバイスありがとうございます。
setup.hで、wxUSE_UNICODEを1にしてビルドしたところ解決しました。
これでwxWidgetsの内部処理がUNICODEになったと考えて良いのでしょうか?

707:デフォルトの名無しさん
09/11/02 08:42:01
URLリンク(zetcode.com)

708:デフォルトの名無しさん
09/11/02 11:31:25
URLリンク(zetcode.com)

709:デフォルトの名無しさん
09/11/02 13:55:43
>>706
そうだけどサロゲートペアには対応してないっぽい

710:658
09/11/02 15:10:21
>>697
久しぶりにプログラミング再開しました。



できました。ありがとうございます。

すべての規定ライブラリの無視(/NODEFAULTLIB)は
いいえのままでしたが、
何かとごっちゃになって、無視するライブラリにLIBCMT.libとかがありました。
とりあえず、できた奴を他のパソで起動してみます。


711:デフォルトの名無しさん
09/11/03 22:57:11
どうも。wxWidgets2.8.10、Unicnde Buildを使っているのですが、ShiftJIS->Unicode、Unicode->ShiftJISを一発でするにはどうするばいいですか?
どうもEncodingConverterクラスはchar/wcharでの変換しか想定していないようなのです。(wxStringを返すことも出来るようなのですが、実際にやると実行時にエラーになりますorz)

712:デフォルトの名無しさん
09/11/03 23:11:52
Linux版使ってるひと?

713:デフォルトの名無しさん
09/11/04 00:06:11
>>712
実行時環境を書き忘れていました。実行時環境はWindowsXP SP3です。

具体的なエラー内容は、WXDEBUGをdefineしてビルドするとwxAssertが働いて、wxEncodeConverter::Init()を使用前に呼び出しているにも関わらず「Init()で初期化してください」と表示されるのです。(リリースビルドでも失敗します。)

714:デフォルトの名無しさん
09/11/04 00:29:22
>>713
俺はWIN32 APIで変換してるよ。手順がチトややこしいので、無名名前空間内に変換用の関数を
書いたヘッダファイルを用意して使ってる。細かい方法は仕事場に行かないと書けないので、
明日にでも...


715:デフォルトの名無しさん
09/11/04 01:47:45
WCHAR *SJIS2WCS(string sjis)
{
if(sjis == "") return NULL;
int wlen = MultiByteToWideChar(CP_ACP, 0, sjis.c_str(), -1, NULL, 0);
WCHAR *wbuf = new WCHAR[wlen + 1];
if(wbuf == NULL) return NULL;
*wbuf = L'\0';
if(MultiByteToWideChar(CP_ACP, 0, sjis.c_str(), -1, wbuf, wlen) <= 0){
delete [] wbuf;
return NULL;
}
return wbuf;
}
string WCS2SJIS(WCHAR *wbuf)
{
if(wbuf == NULL || wbuf[0] == L'\0') return "";
int slen = WideCharToMultiByte(CP_ACP, 0, wbuf, -1, NULL, 0, NULL, NULL);
char *sbuf = (char *)_malloca((slen + 1) * sizeof(char));
if(sbuf == NULL) return "";
*sbuf = '\0';
if(WideCharToMultiByte(CP_ACP, 0, wbuf, -1, sbuf, slen, NULL, NULL) <= 0) return "";
sbuf[slen] = '\0';
return sbuf;
}

716:714
09/11/04 09:51:54
おぉ,先に書いてくれましたね。私の使っているコードも殆ど同じ。
一旦,必要なバッファの長さを取得してからもう一度同じ関数で変換する必要があるのがミソ。
C++的には >>715 の関数をstaticな大域関数にするのではなく,

namespace {
WCHAR* SJIS2WCS(string sjis)
{
//中身
}
}

のように無名名前空間に入れたヘッダファイルを用意して,この関数を利用するソースモジュール
からインクルードして使うのが良いようです(参考書なんかによく書いてある)。

717:デフォルトの名無しさん
09/11/04 15:39:45
>>716
ありがとうございました。

718:デフォルトの名無しさん
09/11/04 21:13:49
>>716
ヘッダファイルに関数の中身まで書くの抵抗あるんだけど
C++だと書いて良いというかそういうもんなの?

719:デフォルトの名無しさん
09/11/04 22:38:43
>718
翻訳単位毎に実体ができちゃうから抵抗があるというのは正しい感覚だと思われ。
ヘッダをインクルードしただけで使いたいってんなら自分なら inline にしておくかな。

720:716
09/11/04 23:38:45
>>719

> 翻訳単位毎に実体ができちゃうから抵抗があるというのは正しい感覚だと思われ。
> ヘッダをインクルードしただけで使いたいってんなら自分なら inline にしておくかな。

おっしゃる通りで...
無名名前空間でヘッダファイル内に定義して、それを異なる翻訳単位で複数使うと、
中身が同じオブジェクトファイルが複数できてしまうよね。

異なる翻訳単位でも共通に使えるようにするのなら、コード効率を考えなければinlineに
するのが良いだろうし、コード効率を重視するのならシングルトンパターンでも使って、
実体が一つしかできないようにしてクラスにするのが良いと思われ。

昔のC流でグローバルな関数にするのが一番簡単だったりして...


721:デフォルトの名無しさん
09/11/05 05:33:21
inline にしておけば翻訳単位ごとに実体ができようが
リンク時に1つにまとめられるぜ

722:デフォルトの名無しさん
09/11/05 06:16:24
多分、最適化のこともインラインのことも勘違いしてるんだろうね。

インライン展開とは、関数を実行したのと同じ「意味」になる処理を呼び出し側に埋め込んで
関数呼び出しのコストを無くすことであって、
「意味」を変えないためには>>526のようなことが必要になる。
これは最低限の自分の存在理由を満たしているだけであって、「最適化」などではない。

一方、彼の考えるインライン展開は、引数として渡した「記述」を切り貼りして
コードの姿を組み立てて、それを呼び出し元に貼り付ける、というような物らしい。
でも、それはマクロがやってることだ。

マクロといえば、簡易的なLisp処理系を作って、強力と名高いLispのマクロを実装してみると、
このへん勉強になるかもね。
Lispの言葉でいうなら、C++の関数は「引数はすべて評価してから関数に渡される」。
つまり f(g(), h());の時、fが受け取る(そして扱う)のは「g()の戻り値」と「h()の戻り値」。
だからインライン展開するにあたって、>>526のようにすることでそれを実現する。
それに対して、Lispのマクロは「引数を評価せずに渡し、戻り値で呼び出し側を置き換える」。
こっちが彼の考えるインライン展開に近い。



723:デフォルトの名無しさん
09/11/05 06:40:41
???

526 :デフォルトの名無しさん [sage] :2009/10/06(火) 21:04:39
no problem

724:716
09/11/05 08:30:56
>>722
そもそも誰に対するレス? アンカーも間違ってるので,言っていることがイマイチよくわからん。


725:デフォルトの名無しさん
09/11/05 10:30:25
>>721

> inline にしておけば翻訳単位ごとに実体ができようが
> リンク時に1つにまとめられるぜ

それはないだろう。
もうしそうだとすると、inline関数の呼び出し時に、通常関数の呼び出しと同じように
呼び出しアドレスや引数がスタックに積まれることになってオーバーヘッドが大きく
なってしまうから、inline関数の意味がなくなってしまう。

そもそもその話の出典はどこ?

726:デフォルトの名無しさん
09/11/05 13:15:10
スレリンク(tech板)

727:デフォルトの名無しさん
09/11/05 14:20:58
>>721, >>726

なぁんだ、>>722はSTLスレのコピペだったのか。
(STLスレのinlineの話は長すぎて読みきれん!)

で、>>721だけど、inline関数の中から呼び出される関数の実体は一つにまとめられる
と言いたいのかな?それともコンパイラがインライン展開できなかったときは一つに
まとめられるという話かな?

ANSI C++規格書の7.1.2の2と4にそのあたりのことが書いてあるけど、俺の英語力では
「inline関数への呼び出しはリンク時に一つにまとめられる」とは読めないなぁ。

仮にまとめられるとすると、スタックを使わないでどうやってその関数を呼び出すの?
「inline関数を使うと、スタックによる関数呼び出し手続きを省くことができるので、
オーバーヘッドを省くことが出来る」と、多くの参考書等にも書いてあると思うが。

728:デフォルトの名無しさん
09/11/05 15:23:16
レジスタ渡しで呼ばれてるんだろうなw

729:デフォルトの名無しさん
09/11/05 15:59:45
それは最早呼び出し規約(fastcall)の話であってinlineじゃないな…w
つか、wxWidgetsのスレでやる話なんだろうか

730:デフォルトの名無しさん
09/11/05 16:03:57
>>728
wが付いてるから冗談だということで...

>>729
んだね。スマソ

731:デフォルトの名無しさん
09/11/08 15:50:36
wxWidgets用のGUIビルダーやRADツールで、カスタムウィジット(例えばwxCodeに登録されているウィジット)を
登録して、ペタポトできるようにする仕組みを持ってるものってある?

あったら具体的に教えてもらえると嬉しい。

732:デフォルトの名無しさん
09/11/08 18:14:35
XRCed

733:731
09/11/08 22:45:41
>>732
サンクス。XRCedリソースエディタとしてC++用にも使えるんですよね。
まだ試してないんですが、やってみます。

734:デフォルトの名無しさん
09/11/09 13:20:51
XRCed使ってみた。巷で言われる「癖のある使い勝手」はsizerベースであることを考えれば
オレは気にならないけど,イベントハンドラの名前すら記述できないし,xrcしか出力できない。

wxrc使っても,これじゃ結局イベントハンドラそのものと,イベントとイベントハンドラを接続
するコードは手書きするしかないんじゃないの? オレには向いてないみたい。

735:デフォルトの名無しさん
09/11/09 18:27:47
すいません・・・
今、wxStringの文字列を、C言語のchar型に変換する方法を探ってるのですが、
なかなか見つかりません・・・

static char *C文字列;

で宣言したのを、

C文字列 = wx文字列(wxConvUTF8);

とやったら、

1>xxx.cpp(562) : error C2440: '=' : 'const wxChar *' から 'char *' に変換できません。
1> 変換で修飾子が失われます。

と言われた所です。

736:デフォルトの名無しさん
09/11/09 18:56:13
そもそもconstを非constに暗黙の変換はできない
C言語(C++ですらない)の教科書に当たるか
const_castでググるべし

737:デフォルトの名無しさん
09/11/09 20:59:45
テキストボックスでRead Onlyなのに日本語入力だと普通に書き換えられるのは仕様なの?

738:デフォルトの名無しさん
09/11/09 23:36:34
>>735
c_str()

739:デフォルトの名無しさん
09/11/10 00:11:36
>>735
Unicodeビルドか?Ansiビルドか?
話はそこからだ。

740:デフォルトの名無しさん
09/11/10 04:25:02
overviewsの wxMBConv classes overview, Unicode support in wxWidgets,
それから wx/strconv.h あたりを読むよろし。

741:735
09/11/10 17:11:59
const char 変換物;

変換物 = 変換元.c_str();

char *変換物 = const_cast<char*>(変換物);



ってやれば、とりあえずコンパイルは通りました。
ありがとうございます。

const charでやっといて、const付きで変換して、
あとではずすって感じですね。


んで、今度は文字コードが上手くいってないんですが・・・
コンパイルはVC++で、文字セット「設定なし」です。
一体どうすれば・・・

742:デフォルトの名無しさん
09/11/10 17:25:42
どういうコードでどういうデータを使ったらどううまくいかないのさ

743:デフォルトの名無しさん
09/11/10 22:36:10
>>741
char *変換物 = const_cast<char*>(変換物);
変換元が無くなったら死ぬよね

744:デフォルトの名無しさん
09/11/11 00:22:46
>>741
質問するならもっと詳しく書け。
そんな質問じゃエスパーが現れるまで誰も答えられん。

745:デフォルトの名無しさん
09/11/11 03:23:39
ただの愚痴だな
質問ですらない

746:デフォルトの名無しさん
09/11/11 10:37:13
>>741
コンパイル通ればいいてものじゃないでしょ。
char *p = strdup(unicode_string.c_str());
とでもすればいいのに。
あと、文字セットは Unicode か MBCS(マルチバイト文字)
じゃなきゃ駄目だと思うよ。
wxWidgets 使うなら Unicode でがんばって。

747:デフォルトの名無しさん
09/11/11 10:51:51
みんな wstring って使ってる?

748:デフォルトの名無しさん
09/11/11 16:12:34
wxWidgetsは、どう発音するの?
ダブリュ・エックス・ウィジッツ?

既出かもしれないけど教えて。

749:デフォルトの名無しさん
09/11/11 16:36:55
日本人相手なら普通はダブルエックス・ウィジェッツ
でいいんじゃね?

750:デフォルトの名無しさん
09/11/11 16:42:32
>>749
ありがとう

もしかしたら、ウィックスウィジェッツとか発音するのかと思ってた。


751:デフォルトの名無しさん
09/11/12 12:45:23
>>748
URLリンク(www.youtube.com)

この00:09の所でダブリュ・エックス・ウィジッツと発音してるね。

752:デフォルトの名無しさん
09/11/12 16:47:45
2.9.0になって中身がだいぶ変わったな
今までのがビルド通らないし、動きもしない・・・
バグじゃなくて仕様変更だからしょうがないんだけど。

753:735
09/11/16 14:46:14
解決しました。ありがとうございます。

754:デフォルトの名無しさん
09/11/25 10:37:38
Visual C++ 2008 Express EditionでwxWidgets2.8.9を使用しているのですが、
wxURLを使おうとすると、リンクするときにどうしてもエラーになってしまいます。
(そもそも、wxURLを書いただけでエラーになります。
wxURL以外は幾つかしか使っていないのですが、普通にうまく動きます。)

test.obj : error LNK2001: 外部シンボル ""public: virtual __thiscall wxURL::~wxURL(void)" (??1wxURL@@UAE@XZ)" は未解決です。
test.obj : error LNK2001: 外部シンボル ""public: __thiscall wxURL::wxURL(class wxString const &)" (??0wxURL@@QAE@ABVwxString@@@Z)" は未解決です。
****\****.exe : fatal error LNK1120: 外部参照 2 が未解決です。

初心者で、解決しようにも原因さえわからないのですが、
アドバイスを宜しくお願いします。

以下、再現できるコードです:
#include "wx/wx.h"
#include "wx/url.h"
class MyApp : public wxApp{
public:
virtual bool OnInit();
};
IMPLEMENT_APP(MyApp)
bool MyApp::OnInit(){
wxURL url(_("URLリンク(example.com)"));
return TRUE;
}


755:デフォルトの名無しさん
09/11/25 11:40:44
>>754
普通に通るけど、、、ライブラリは自分でコンパイルしたやつ?
バイナリ使ったのならどれかな?

756:デフォルトの名無しさん
09/11/25 13:21:44
>>755
ありがとうございます。結構前に入れたものなのでよく覚えていないのですが、
wxMSW-2.8.9-Setup.exeをダウンロードしてインストールし、
build\msw\wx.dswを、VC++ 2008 Expressで開いて、「ソリューションのビルド」をしたものだと思います。

757:デフォルトの名無しさん
09/11/25 13:35:02
>>755
すみません・・・。
URLリンク(freepg.fc2web.com)
をなどを参考にして環境を構築していたのですが、
自分のPCにある、lib\vc_libを見て、「追加の依存ファイル」に無いファイルがあることに気づき、
とりあえずwxURLと関係のありそうな、wxbase28_net.libがありませんでしたので、
それを、プロジェクトのプロパティで、追加の依存ファイルに追加したところ、
エラーが出ずに、ビルドができました。とりあえずエラーは出ないようになったので先に進めます。
初心者の質問につきあっていただき、ありがとうございました。感謝しています。

758:デフォルトの名無しさん
09/11/25 14:02:57
関係ないけど
追加の依存ファイルの入力枠って
なんであんなに使いづらいんだろう

759:デフォルトの名無しさん
09/11/25 14:05:11
使いづらいよねw
#pragma comment使えってことなのかなあ。

760:デフォルトの名無しさん
09/11/25 14:41:33
includeパスもlibパスも使えねー
嫌がらせだろあれはw

761:デフォルトの名無しさん
09/12/02 16:13:55
>wxDev-C++
をインスコしたら、
>C:\Program Files\Dev-Cpp
フォルダに、
vcl60.bplとかrtl60.bplがあるみたいなんだけど、
これってC++ Buider か何か?

762:デフォルトの名無しさん
09/12/02 16:19:04
うん

763:761
09/12/02 16:28:52
嬉しいけど、
C++ Builder を購入してる自分的には、
2種類のソフトと思ってたのが実は1種類みたいに思えて、
損した気分w


764:デフォルトの名無しさん
09/12/02 16:51:31
えっ

765:デフォルトの名無しさん
09/12/02 17:10:36
えっ

766:デフォルトの名無しさん
09/12/02 17:43:44
それはあれだぞ
WindowsのゲームはDirectX使ってるから実は1種類だ!!
って言ってるのとかわらんぞ・・・?

767:デフォルトの名無しさん
09/12/02 17:51:31
それじゃドズ1種類じゃね?
他に、ウィィとかP$3買えば3種類

768:デフォルトの名無しさん
09/12/03 11:43:52
wxwidgetsのデザイナ入ってるIDE、codeblocksとかwxdevとかで
デバッグ機能を使って、STLのvectorとかlist使った配列の中身見れるやつある?



769:デフォルトの名無しさん
10/01/02 21:37:55
win32api と wxWidgets の違いって何?

wxWidgets でクロスプラットフォーム GUIアプリを作ろう
URLリンク(0xcc.net)

↑を見るとwin32をラッパしているだけ、と書いてあるのだが
windows限定で開発している俺には何もメリットない認識でおk?

770:デフォルトの名無しさん
10/01/02 23:25:16
MFCで開発してる奴が少ない労力でLinuxやMacで動かせるようになる点がメリット。
ということは、どういうことか分かるよな?

771:デフォルトの名無しさん
10/01/03 22:27:34
文字列扱いやすいし,windowsだと冗長になってしまうコードも
簡潔に書けるってのもいいんじゃない?

772:デフォルトの名無しさん
10/01/03 23:33:40
文字列扱いやすいなんてのはSTLやMFC使えば一緒だよ

773:デフォルトの名無しさん
10/01/04 00:10:00
そう?MFCは使ってないからなんとも言えないけど
STLやQtとか他のライブラリと比べると操作関数が豊富だったと思う
所詮好みの問題だけどさ

774:デフォルトの名無しさん
10/01/04 01:42:25
詳しい文書があり、またPythonで使えるのも良い。
GUIの挙動とか確認したい時に一々コンパイルせずともPythonでトライアンドエラー出来るのは楽。

775:デフォルトの名無しさん
10/01/07 01:10:00
SSLのソケットは簡単に作れないですかね。
クライアント・サーバどちらも使いたいんですが。

776:デフォルトの名無しさん
10/01/07 02:46:55
URLリンク(wxssl.sourceforge.net)
ちなみに中身はまったくみていない

777:デフォルトの名無しさん
10/01/07 04:43:06
求)リードプログラマー
か・・・

778:デフォルトの名無しさん
10/01/10 07:28:10
>>769
Code::BocksのwxSmithやwxFormBuildeや、wxDev-C++みたいな
ポトペタRADツールを使うと、MFCよりサクサク開発できる。
MFCは書かなきゃならないコードが多すぎる。

779:デフォルトの名無しさん
10/01/22 02:33:04
>>769
何もメリットないってことはないけど、俺ならクロスプラットフォーム
でもないのにあえてwxWidgetsを選ぶことはないな。

780:デフォルトの名無しさん
10/01/22 03:26:04
Win32API とか MFC のダサさを回避したいときには
敢えて wxWidgets や Qt4 とか使うのは間違いではないよ

781:デフォルトの名無しさん
10/01/22 12:43:16
同感。C++ Builderは既に死に体だし。

> 敢えて wxWidgets や Qt4 とか使うのは間違いではないよ

最近の流れだと wxWidgets は Qt に比べて分が悪いね。
Qt より単純で好きだったんだけど。

782:デフォルトの名無しさん
10/01/22 13:20:52
wxWidgetsは、気に入らない部分を書き換えてビルドできちゃうところがいい

783:デフォルトの名無しさん
10/01/22 16:24:55
スタティックリンクも出来るし

784:デフォルトの名無しさん
10/01/23 00:03:56
3.0まだぁー?

785:デフォルトの名無しさん
10/01/23 00:06:43
>>779
で、何選ぶの?

786:デフォルトの名無しさん
10/01/26 12:08:16
>>785
この流れでは言いにくいけど俺はC++Builder。


787:デフォルトの名無しさん
10/01/26 12:58:26
俺は逆にC++ Builderから逃げようとしている。
Borland⇒CordGear⇒Embarcaderoと母体が変わるうちにどんどん品質低下。
バグを充分に修正しないまま次期バージョンを発売してしまう。
メチャクチャな翻訳やリンク切れ満載のヘルプの酷さは見るに耐えない。

以前は沢山カキコのあったMLも超閑古鳥。
問い合わせしても自分で答えずに一般人のHPのURLをメールに貼って
「ここに情報があります」と言うヒドいサポート。

最新バージョンへの優待バージョンアップも申し込みが少なかったらしく,
昨年末までだった予定を一ヶ月延長する情けなさ。
トライアル版使ってみれば,バージョンアップする気がなくなるw

Windows限定なら使いやすくて仕事が速く出来る最高の製品だった
はずなのに,こんな製品に誰がした!

QtをNOKIAが買ったように,どこかの大きな会社が買ってくれんかな。
wxWidgetsもどこかがバックに付かんかな。

788:デフォルトの名無しさん
10/01/26 14:47:56
同意

789:質問
10/02/05 12:50:49
wxPythonを使っているのですが、
wx.media.MediaCtrlでマウスクリックのイベントから関数をコールバックすることはできないのでしょうか?
もしできないのでしたら、親ウィジェットでマウスクリックのイベントを受け取ることはできるのでしょうか?

790:デフォルトの名無しさん
10/02/05 15:54:21
>>787
どこもバックに付かないから良いんじゃまいか

791:質問
10/02/06 00:14:07
すみません、解決しました。

792:デフォルトの名無しさん
10/02/06 17:38:58
wxString strを
cout << str << endl;
という風に出力したいんだけど、コンソール入出力用のストリームってある?

793:デフォルトの名無しさん
10/02/06 17:42:12
ここには人はいませんよ。ばいばいさるさん。

794:デフォルトの名無しさん
10/02/06 18:35:55
よく分かってないけど自己解決

795:デフォルトの名無しさん
10/02/07 00:44:24
VC++2008EE+wxに越してきたのですがUnicode Releaseってのがあるのですが
やっぱりこっちの方がいいんですかね?

796:デフォルトの名無しさん
10/02/08 00:21:46
あんまり人いないのかな?

797:デフォルトの名無しさん
10/02/08 00:32:22
Qtに引越ししつつある

798:デフォルトの名無しさん
10/02/08 00:35:47
>>796
枯れてきたから使用者が多くても質問者は少ないんだろ。

799:デフォルトの名無しさん
10/02/08 00:39:46
>>797>>798
そうなのか
Qtの方ってOSが搭載してるブラウザコアを組み込んで使えたりするのかな?

wxのHTML処理関連は素のHTMLは問題なさそうだけどcssが駄目そうだし

800:デフォルトの名無しさん
10/02/08 01:02:14
QtにはWebKitが付いたんだっけ?

801:デフォルトの名無しさん
10/02/08 01:05:52
wxの話では盛り上がらないけど
Qtの話になると盛り上がるwxスレ

802:デフォルトの名無しさん
10/02/08 01:07:42
Monoで作るというのもあるよ
あれだとC#でかけるのでC++の糞構文に悩むこともない
ただMSの動きとかもろももろでどうなるかなんだよね

803:デフォルトの名無しさん
10/02/08 01:11:26
Qt で書かれたアプリはときどき見かけるけど
wx で書かれたのってあまりお目にかからない
どんなのがあるの?

804:デフォルトの名無しさん
10/02/08 01:14:24
>>803
python製アプリ見ればほとんどwxだよ。

805:デフォルトの名無しさん
10/02/08 01:25:36
休みを利用してwx関連をいろいろ試したけどGUI関連のツールが微妙だな
ネットで調べるとすぐにでてくるwxGladeとかもうね・・・

806:デフォルトの名無しさん
10/02/08 01:35:40
まぁ、GUIなんて手で書けばいいし

807:デフォルトの名無しさん
10/02/08 03:16:08
wx で GUI 独立設計したいなら XRCed がいいよ

808:デフォルトの名無しさん
10/02/08 11:11:06
>>795
あんまり頻繁に見ていないんだ、ごめんよ。
で、Windows で使うなら UnicodeRelease/UnicodeDebug でいいよ。
むしろそれ以外は気にしてはいけない。
static か DLL かは好みで。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch