1 :
デフォルトの名無しさん :
2006/10/07(土) 17:28:33 このスレッドは どんなに「くだ」らない.NETプログラミングに関する質問でも 誰かが優しくレスをしてくれる「すれ」っどです。 質問者自身何がなんだか分からない質問でも勇気をもって書き込んで ください。お礼は.NETアプリケーションの普及と初心者の救済を お願いします。
2 :
デフォルトの名無しさん :2006/10/07(土) 17:29:45
なお、開発環境はMS系、Bolrand系、その他全てを含みます。 開発言語は.NETアプリを作成できるもの全てを対象とします。
Delphi.NETではVCL.NETを利用したFormとMSのWinFormと基本的に 2種類の.NETアプリを作れそうですが、それぞれの利点と弱点を 教えてください。 Delphiを学び始めた初心者としてはVCL.NETを利用するとソースコード上は Win32とまったく変わらないので有難いのですが、配布する専用のDLL が必要となるのでちょっと面倒だと感じています。スタティックに する方法があるそうですけど・・。それ以外に 何か問題があるかどうがご教授お願いします。
メモ帳で作るにはどうしたら良いの? IISはインスコできたけど、動かない。orz
>4 .NET Framework SDKをインストール。 IISって必要だったっけ?
2.0のSDK、354.0 MBもある。orz 1.1なら106.2 MBで済んでw2kにSP当てる必要も無い。
無料で使えるCコンパイラってあるの? vc.iso611,540 KB巨大過ぎ!
>>7 そりゃそれはコンパイラ以外にも巨大なIDEを含んでいるから、
どうしてもでかくなってしまう。
VCTK
BASIC言語よりもC言語の方が使いやすいと聞いたんですけど実際のところどうですか? あと、覚えておいて得になったみたいなことってありますか?
人による
今から勉強するんですが .NETよりJava先にやっとくべきですか .NETで食べていける?
15 :
デフォルトの名無しさん :2007/02/11(日) 16:35:55
焼肉食いたいです。
16 :
デフォルトの名無しさん :2007/02/12(月) 00:52:33
NET Framework 2.0をsetupするとエラー:必須コンポーネントプログラムが見つかりませんとなります 必須コンポーネントプログラムをインストールしなくてはいけないみたいなのですが 調べてみても意味のわからない言葉ばかりでどうしたらいいかわかりません 必須コンポーネントプログラムを簡単にインストールする方法はないでしょうか?
>調べてみても意味のわからない言葉 その言葉を、ここに、書けや、ハゲ。 OSとか、SPとか、分からんと、答えようが、あるかっての、ハゲ。
18 :
デフォルトの名無しさん :2007/02/12(月) 14:24:22
osは windows xp です spはちょっとわからないんですけど パソコン買ったのが2006年でそれ以来spインストールしてないので sp1だと思います どうかコンポネートプログラムをインストールするために 何をやったらいいのか教えてください
sp1ならますsp2当てて来い
>>18 .NET Fx 2.0
サポートされているオペレーティング システム : Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition;
Windows ME; Windows Server 2003; Windows Vista Business; Windows Vista Business 64-bit edition;
Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic;
Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition;
Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP Service Pack 2
>2006年 SP2入ってるだろw
22 :
デフォルトの名無しさん :2007/02/12(月) 15:47:15
プログラム検索したらsp2が入ってるみたいでした 調べもしないで適当なこといってすいません 続きをお願いします
これとか? 必要なソフトウェア: Windows Installer 3.0 (Windows Installer 2.0 またはそれ以降を必要とする Windows 98/ME は除きます) : Windows Installer 3.1 またはそれ以降を推奨します。
24 :
デフォルトの名無しさん :2007/02/17(土) 16:59:45
ツリービューにユーザー定義のパラメータを関連付けるにはどうしたらいいでしょうか?
Tag
>>25 うお、エライ早いご回答ありがとうございます。
27 :
デフォルトの名無しさん :2007/02/17(土) 17:22:36
たびたびですいません。 ツリービューのノードにユーザー定義パラメータを関連付ける方法はありますでしょうか?
え゛?
Tag
30 :
27 :2007/02/17(土) 17:39:00
>28-29 まことに申し訳ありませんでした脳が腐っておりました。 脳みそ洗って出直してきます。
継承して好きなプロパティでもなんでも実装してください
IExtenderProviderのがいいでよ。
33 :
デフォルトの名無しさん :2007/03/30(金) 12:48:49
JavaからC#に移行を考えているのですが、JavaのHttpClientみたいに、 クッキー管理やhttpsをお手軽にできるライブラリはありますでしょうか? できるだけ無償利用可能でGNUでないものがあるとうれしいです。
System.Net.WebRequestじゃダメなの?合わないようなら他探すけど。
WebClientとか
とりあえず System.Net をMSDNで見てみるといいかも。
37 :
デフォルトの名無しさん :2007/03/31(土) 00:06:28
>34,35,36 ありがとうございます、 見てみます。
すみません。.NETFramework2.0をインストールするには インストーラ3.1が必要ですよね? これってNTにはインストールできないんですかね?
39 :
38 :2007/04/23(月) 21:57:46
申し訳ないですがageさせてもらいます
>>40 なんではげって分かったんですか!???
ありがとうございます!
.NET Framework2.0はダメってことですね・・・ 98がおkでNT4.0がダメなんて・・・・・・・・ 1.1で動くかなぁ・・・・・・orz
43 :
デフォルトの名無しさん :2007/04/25(水) 09:47:48
よろしくお願いします。WindowsXPとVB 2005 Expressです。 OSの再インストールを行い、元のようにVB 2005 Expressをインストールしたんですが、 ildasm.exeが無くなってしまいました。PC内を全検索してもありませんでした。 ildasm.exeを入れるためには、他に何かをインストールする必要があるのでしょうか?
44 :
43 :2007/04/25(水) 12:37:33
自己解決できました。スレ汚し失礼しました。 VS Expressをインストールすると、.Net Framework SDK ver2.0が不完全な状態で入るらしく、 機能をフルで使いたいなら単独で上書きしてやらなければならないそうです。
45 :
デフォルトの名無しさん :2007/04/27(金) 10:58:45
ASP.NET、GridViewのBoundFieldのHederTextを 任意の場所で改行して表示したいんだけどいい方法ないですか?
普通に改行入れたらいいじゃん バインドしてTHタグ書き出すときにBRタグ入れて改行するってことだろ? コードでバインドキャッチしてVBCRLFでも突っ込めばいいんちゃうの?
47 :
デフォルトの名無しさん :2007/04/27(金) 11:49:31
>>46 あ、ごめんVBじゃなくてC#だわ
書くの忘れてた
"1行目<BR>2行目"みたいに<BR>を直接書く
49 :
45 :2007/04/27(金) 11:55:59
>>48 やってみればわかるけどそれだと
「1行目<BR>2行目」と表示される
>>49 それはなきっと代入先のプロパティの違いだと思うよ
51 :
45 :2007/04/27(金) 12:02:54
>>50 ああああなるほど!
HtmlEncodeをFalseにするのか!
ありがとう解決したよ!
.NETってDirectXみたいなもんですか?
いいえ。全く違います。
翻訳:穴子丼ってスペースシャトルみたいなもんですか?
初めまして、VC++のC++/CLIのフォームアプリケーションについて質問があります。 今、LimeChat 2 の様なアプリを作っていています。 そのアプリのテキストボックスには、カーソルが表示されていません。 どのようにすれば、カーソルを表示させないようにできるのでしょうか? また、TreeViewの再描画を一時停止させたいのですが、どうすればよいのでしょうか?
56 :
デフォルトの名無しさん :2007/05/25(金) 17:31:45
こんな奴がC++出来るんだぜとかいってると思うとため息出るな・・・
HideCaret(static_cast<HWND>(this->textBox1->Handle.ToPointer())); でなんとかキャレットを非表示にできそうです。 しかし、外部シンボル ""extern "C" int __stdcall HideCaret(struct HWND__ *)" (?HideCaret@@$$J14YGHPAUHWND__@@@Z)" は未解決です。 というリンクエラーが出てしまいましたorz どうすれば解決できるでしょうか?
C#でWindows Application(WPF)のプロジェクトを新規に作ったのですが、 ウィンドウのメニューに新しい項目を追加して、 そのクリックで処理する関数はどのように記述すればよいのですか? XAMLの<MenuItem>でメニューは追加したのですが、 処理への橋渡しのしかたがわかりません。
>>59 OnClick の処理を追加したいってこと?
コード側でやる。
this.menuItem.Click +=
まで打ったら、「tab を押したら雛形作るよ」みたいなメッセージでて、
そこで tab 押せば OK。
NETはVBでもC#でも同じ中間言語とランタイム使うんですよね ということは速度差はあまりないということですか?
62 :
デフォルトの名無しさん :2007/07/16(月) 17:03:09
>>61 ないだろうね
そういう部分よりもむしろ組む人間の書くコードの処理性能の差の方位が大きい
同じように書けば変わらないよ
つまり、ドトネト全体がネイティブに比べて劇遅。
ネイティブなら細部のパフォーマンスまで手動で改善する余地があるってだけで、 それをしなかった場合に、パフォーマンスが大きく変わるわけじゃない。
>ネイティブなら細部のパフォーマンスまで手動で改善する余地があるってだけで、 違う。 ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。
67 :
デフォルトの名無しさん :2007/07/18(水) 02:14:34
>ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 >ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。
そりゃそうだろ。 モッサリドトネトをわざわざ使ってそれを性能改善するなんて不毛な話。
はは 君の書くネイティブプログラムにはドトネト使ってもパフォーマンスで勝てそうだ
結論:ネイティブなら汚く作ってもそこそこのパフォーマンスが出る。 ドトネト敗北www
73 :
デフォルトの名無しさん :2007/07/18(水) 10:33:54
.netはCPUの性能向上を当て込んでいたってこと? それであんなにもっさりなの
くそすれあげんな
レスの数わずか9で終わったスレ:
>Windows Live プログラミング
5 :デフォルトの名無しさん:2007/05/23(水) 03:51:43
くだらねえ。なんでタダでMSの奴隷にならなあかんの。
7 :デフォルトの名無しさん:2007/06/15(金) 08:37:17
漏れのW-zero3に
LIVEのサービスにシンクロするのを入れたけど
接続しっぱなし、常に電源オンで
頭にきて速攻消した。
OFFICEは付き合いで買ってみたけど
VSはもう川根。
8 :デフォルトの名無しさん:2007/06/15(金) 23:14:07
>>5 Webサービスの類は自前でサーバを作らない限りどこかの会社の奴隷じゃよ
9 :デフォルトの名無しさん:2007/06/16(土) 13:29:16
だからLAMPで組むところが多い
76 :
デフォルトの名無しさん :2007/07/18(水) 11:32:08
C++/CLIでMDIアプリケーションを作ってるのですが、 メニューにMdiListを設定して、子ウインドウのリストを作っています。 このとき、複数の子ウインドウを作成し、 どれか一つの子ウインドウを最大化した状態で、 メニューの子ウインドウリストから別のウインドウを選択して 子ウインドウを切り替えた場合に、 一瞬その他の子ウインドウが見えてしまいます。 子ウインドウをCtrl+Tabで切り替えたときは、 その他子ウインドウが一瞬見えてしまう現象は起きません。。。 メニューのウインドウリストからウインドウを切り替えても、 その他子ウインドウが見えないようにする方法はないでしょうか。。。。 しょうもない質問で申し訳ないのですが、 ご存知のかたがおられましたら、ご教示いただけませんか。
77 :
デフォルトの名無しさん :2007/07/26(木) 02:18:50
スレ違いかもしれないけど、.NET Frameworkのインストール率を 調査したページや資料ってどこかにありますか? 2.0がどのぐらいの割合でインストールされているのか知りたいんです。
そんなのぜんぜん意味ないことに気づけ。 MSが公開でもしてたら別だがな。
IEだとHTTPヘッダのUAに.NETのバージョンが書かれているからその数字を参考にするとか
問題はだね、そんくらいいろんな人が訪れるサイトを作るか、 協力してもらう必要があることだ
うちの自宅鯖にアクセスする人(平均4000ヒット/日)はIE(とIEコンポーネント使用ブラウザ)が99%以上 そのうち.NetFramework1.1以上が入ってるのは9割強
俺のウェブサイトの訪問者は3.0入れてる人が4割ぐらいだな 多分ほとんど俺だが。
4000回くらいは自分のアクセスだが6000回は
>>82 のファンかもしれんぞ
>うちの自宅鯖にアクセスする人 ドトネト解説サイトだったりして。
>>85 違うよ
某ネトゲ(.Net不使用)に関するサイト
ちなみに、2.0以上は何割ぐらい? 2.0ってWindowsUpdateで自動インストールされるっけ。
>>87 ユーザエージェントにそれぞれの文字列がある割合。
"CLR 1.0"・・・10%
"CLR 1.1"・・・64%
"CLR 2.0"・・・91%
"CLR 3.0"・・・29%
一人のユーザに複数のバージョンが書かれてる場合もある。
ちなみに最近1ヶ月のログで調べた。
ATI のグラフィックカードだと .NET 必要だから ATI には感謝しとかないとな
>>89 何かヲタ的な発想で気持ちが悪いなそれw
前から不思議でしょうがないんだが、ヲタっていうのはどうしてたまたま自分が使ってる
だけに過ぎない商品の市場占有率を気持ち悪いぐらい過剰に気にするんだろうね。
そんでもってそのたまたま自分が使ってるに過ぎない商品の競合を互いに
排斥したりしてやがるw
本当気色悪い人種だわ。俺には理解不能なメンタリティとしかいいようがない。
なんか気持ち悪い人がいますね
95 :
デフォルトの名無しさん :2007/08/16(木) 17:25:11
質問です。 ボタンが複数ある場合,それらをグループ化して, switch文でbutton1が押された場合は,case1に飛ぶとか そういうことは,実現できないのでしょうか? 初歩的な質問ですみません。
>>95 グループ化したいボタンのClickイベントに同じイベントハンドラをわりふる。
senderが押されたボタンを指しているのでそれに応じた処理をする。
>senderが押されたボタンを指しているのでそれに応じた処理をする。 何このDelphi/VCL?
だってアーキテクト一緒だもん
.NET用フリーコンポーネントのダウンロードサイトってありますか? Delphiでいうところの Delphi Super Page や Torry's Delphi Pages みたいな...。 探してみたんですが、見当たりません。 そもそも.NETの世界には、そういう文化がないんでしょうか?
101 :
デフォルトの名無しさん :2007/08/22(水) 02:05:31
ネットワークプログラムのサンプルとしてチャットソフトを作りたいのですが、 相手からのデータを受信したことを知るにはどうすればよいのでしょうか? とりあえずタイマー張って、その中でNetworkStream.Readする方法を思いついたのですが、 あまりスマートじゃない気がして…
なんでタイマー…
103 :
デフォルトの名無しさん :2007/08/22(水) 12:08:14
調べても方法が載ってなかったので、質問です。 Outlookでマクロを作成したので、 コレをVBから実行させたいと思っています。 どうしたらいいのでしょうか? スレ違いならすみません。
104 :
デフォルトの名無しさん :2007/08/22(水) 15:42:34
105 :
デフォルトの名無しさん :2007/08/22(水) 16:29:14
>>104 ありがとうございます。
早速見てみたんですが、肝心のOutlookの場合がありませんでした。
要所を変更して試してみたんですが、ダメでした。
2005Express日本語版は無料ですが 英語版はなんかレジスターとかしないといけないんですか? 昔のJAVAのソースを流用したいのでJ#を使いたいのですが 英語のページ見てもちんぷんかんぷんです(泣 JLCAを使おうかと思ったのですが無料環境では使えなさそうでした。
そこらへんは日本語版も英語版も変わらないぞ。 どっちも任意のユーザー登録を求められる。 たしか登録しなくても使い続けられるはず。
109 :
107 :2007/09/27(木) 07:06:29
えそうなの? C#いれたのがかなり昔なので忘れてました。そうだったっけ。
111 :
デフォルトの名無しさん :2007/09/27(木) 19:35:34
DataGridView に DataSet の中身を表示するだけのプログラムを作りたいのですが, すでに値の入っているDataSetを表示するためにはどうしたらいいのでしょうか? (DataGridView インスタンス).DataSource = (Datasetインスタンス); (DataGridView インスタンス).DataMember = "Table"; とやっているのですがグリッド画面に変化が情報が表示されません. DataSetにはブレイクポイントで見た時に DataSetビジュアライザでは テーブル(T): コンボボックスに 「Table」 ととしていくつかのデータが入っています. どのように修正すればいいのでしょうか?
112 :
107 :2007/09/27(木) 22:22:03
>>110 J#Expressは英語版しかないのですが、「登録しないとインストール後30日しか使えません」と
いう意味だと思われるメッセージが出るんです。
C#日本語版ではそんなことした記憶がないので,ここで質問させてもらいました。
J#英語版を起動するたびそういうメッセージが出るのですが、とりあえずほっときます。
1ヶ月後もし使えなくなったらまた考えます。
登録無料だったと思うけど…
>>112 今のはしらないが、ダウンロード可能になったばかりのころの日本語版Expressは
プロジェクトを1つ作くるまでの間登録のメッセージが繰り返し出る仕組みだった。
登録すると消えると思っていたので5回も登録したのを覚えている。
115 :
デフォルトの名無しさん :2007/10/03(水) 16:25:36
.NET Frameworkのアプリってmacでもうごくの?
Mono入れれば動くかもね
ほぼ全てのアプリはWinAPIを併用しているので動きません。
monoはASP.NETがメインターゲットで、WinFormの完全な移植ははじめから放棄している。
いわゆるM$トラップ。
orcasっていつ頃発売ですか?
121 :
デフォルトの名無しさん :2007/10/05(金) 22:49:52
VB.NET2005でゲームを作っています。 そこで、ゲームが開始されるとマウスポインターを 自分の持っている画像に変更したいのですが、どうしてもわかりません。 VB6.0では、MouseIcon プロパティで設定したユーザー定義のアイコン とあるのですが、イマイチわかりません。 知っている方がいましたらご教示ください。お願いします。 本当に初心者なので、噛み砕いて教えていただけると幸いです。
∩___∩ | ノ ヽ / ● ● | . (( | ( _●_) ミ ・ 彡、 |∪}=) ,ノ ∴ / ヽ/^ヽ ヽ 。 | ヽ \ | | ヽ__ノ
123 :
デフォルトの名無しさん :2007/10/06(土) 18:09:12
初心者用の書籍買ったほうが、今後の為にいいと思われ
マウスカーソル変えるのはドトネトだと案外初心者向きじゃないかもね。 My.Resourcesがカーソルには対応してないから、 MemoryStreamとか初心者にとっては恐らくワケワカメと思われるクラスを使わないと 恐らくリソースからカーソルを取り出せないと思うから。
125 :
デフォルトの名無しさん :2007/10/06(土) 21:47:53
ClickOnceについて質問させて下さい。 現在ClickOncewを利用し作成したWindowsアプリを発行しようとしている のですが(言語はVB.net)うまく行きません。 具体的には、A端末よりアプリをC端末のサーバ上に発行しB端末より 【hoge.application】にアクセスをしたところ次の様なエラーが発生します。 何が原因なのでしょうか? 【エラー発生時のダイアログメッセージ】 アプリケーションのインストール-セキュリティの警告 コンピュータにセキュリティ上の問題を発生させるため、管理者がこの アプリケーションをブロックしました。 名前: hoge 発信元: \\hoge1\hoge2 発行者: 不明な発行元です。 セキュリティー設定は、このアプリケーションがこのコンピュータにインストール されることを許可していません。 1※発信元を短い階層にしてもエラーが出ます。 2※アセンブリ名は英数字を利用しています。 3※発行時にローカル【C:\personal\hoge.application】に発行をした上 でアクセスをすると普通にクリックワンスが利用出来ます。 以上 宜しくお願い致します。
126 :
デフォルトの名無しさん :2007/10/06(土) 23:37:51
121です。 ●123さん なにかお勧めの本とかってありますか? ●124さん あるMemoryStream・・・ワケワメです。初耳です。 なので別の部分を改良したいと思います。 ご回答ありがとうございました。
Accessがインストールされてない状態でプログラム上からmdbのファイル形式を97から2002に変換したいのですが可能ですか?
いままでVB6.0で開発やってきて、今後VB2005or2008に移行していきます とりあえずVB2005Expressをインストールしたんですが、さてどうしたものかと 6.0から.NETに移行するために、まずどういう勉強をすべきでしょうか
Delphi/Delphi.NET
130 :
デフォルトの名無しさん :2007/10/10(水) 22:19:53
骨折りな質問ですが回答願います。 VS2005のC#×ASP.NETでIIS上で動作するwebアプリケーション開発をしたいのですが、 ASP.NETデバッグがうまくいかないんです。 症状としてはASP.NETデバッグをしようとすると以下のエラーメッセが出ます。 「プロジェクトを実行しようとしているときにエラーが発生しました : Web サーバーでデバッグを開始できません。サーバーをデバッグする権限がありません。 サーバーの Debugger Users グループのメンバであることを確認してください。次回からこのプロジェクトの ASP.NET ページのデバッグを無効にしますか?」 で、ネットで検索して DebuggerUsersにIWAMの追加とかiisresetとか、ASP.NETの再マッピングとかいろいろ試したのですがどうもダメなようです。 クライアントのPCには複数の.NET FrameWorkが入ってるのでそれが原因かもしれませんが、 IIS側からはプロパティーのタブでバージョン選択が出来るタブが出来ているのでそれで選択できてるし 問題ないのではないかとも思うのですが、どうしてかなぁー も一個原因として考えられるのはインストール時の順序なんですが、 仕事先で使ってるPCなもんでIISとVS2005インストールする前に.Net1.0/1.1/2.0入ってたんですよね。 だからマッピングがうまくいってないのかもしれない。 けど、客先のPCで.NET FrameWorkに依存してるプリインストのソフトが有るので アンインストしてOSからクリーンインストするわけにはいかない雰囲気なんですよね。 どうにかお助けをー。
> サーバーの Debugger Users グループのメンバであることを確認してください
>>124 リソースからのアイコンの読み込みは、
Iconのコンストラクタ1つで可能。
だから、わかっていれば面倒ではない。
わけわかめかもしれないけど。
はて誰かアイコンの話なんてしてたっけ?w
136 :
デフォルトの名無しさん :2007/10/24(水) 14:04:42
配列の並び替えの考え方が知りたいです(´・ω・`)関数でやるんじゃなくて概念みたいなのを教えて下さい
どう並び替えるの
>>136 多種多様。
アルゴリズムの基礎の教本でも買え。
139 :
デフォルトの名無しさん :2007/10/25(木) 23:15:10
PInvokeってどうやって作ればいいんですか@VS2005
PInvokeの意味分かってるか?
141 :
デフォルトの名無しさん :2007/10/26(金) 17:48:23
質問なのですが、VisualStudio で作ったサーバーソフトをLINUXで動かしたり出来ますか? それともLINUXはLINUX環境で作成するしかないでしょうか?Windowsベースで作ったサーバープログラムを LINUXでも動かすことが出来るようにするには、どの言語を習得するのがいいですか?ご教示お願いします。
>質問なのですが、VisualStudio で作ったサーバーソフトをLINUXで動かしたり出来ますか? ASP.NETならできるよ
ドトネトはありえなーい。 反則だろ。
ドトネトスレで何をほざいてんだ
>>141 コンパイル型なら無条件でJava、
スクリプト系ならPHPかRubyだろ。
あと、DelphiやC++Builderでもクロスコンパイル可能だったけど、
今は対応がどうだったかわからん。
>>141 何やりたいかにも拠るけど、言語としてはJava、
開発環境としてはJava+Eclipse+Eclipse用のプラグインが基本だと思う。
あと、Windows -> Linux のクロス開発をやるなら、VMWareも使った方が良い。
VMWareはAT互換PCのエミュレータで、PC上にもう一台仮想PCを構築するプログラム。
土台のPCでWindowsを動かして、その上でVMWare+Linuxを動かせば
一台のPCで開発が出来るので、動作確認やテスト、設定等が楽になる。
VMWareを使用する上での注意点はネットワークの設定。
ここらへんはサーバープログラムをやろうって人だから大丈夫だと思うけど、
土台のPCと仮想マシン上で仮想ネットワークを構築するので、ネットワークの
基礎知識が無い人が設定間違えるとWindowsからインターネットへの接続が出来なくなる。
ネットワークカードを増設して、既存の口をWindows用、増設した口を
仮想PC用に割り当てると設定が楽。
あと、.Netにせよ、Javaにせよ、Judeの様なUML作成ソフトと
Unitテスタ(.NetならNUnit、JavaならJUnit。JUnitはEclipseのオマケで入っている)
は用意しておいた方が良いよ。
147 :
質問 :2007/10/29(月) 02:12:29
現在、VS2005を使っているのですがメニューに 「前に戻る」「先に進む」というアイコンがありません。 以前にユーザ設定で作る事が出来たと記憶しているのですが、 どうも(ユーザ設定から開いて戻る・進むのアイコンの場所) が分かりません。 ご存知の方がいらしましたら教えて下さい。 ※Shift + Ctrl + F2をアイコンをクリックする事でやりたいです。
やっぱり Flashが基本
.NETで実装されているオープンソースの2ch専用ブラウザってありますか?
TabControlについて教えてください tabPage1に貼り付けたコントロールすべてを tabPage2に移動させるにはどうしたらいいのでしょうか? VS2005 .net C#で開発しています よろしくお願いします。
コントロールを複数選択してコピペすればいいじゃん むしろ同じ物を配置するならユーザコントロール作っとけ
155 :
153 :2007/11/01(木) 07:34:19
>>154 ユーザーコントロールですが。
ありがとうございます!!
全然気が付きませんでした。
VB2005で。 Dim strA As String = "ABC" Dim strB As String strB = strA strA = "XXX" Debug.Print("strA=" & strA) Debug.Print("strB=" & strB) 実行結果 strA=XXX strB=ABC なんでstrBも"XXX"と出力されないの? String型変数は参照型なんだから、strAもstrBも同じ領域を参照してるんじゃないの? それともstrA="XXX"の行は参照先の書き換えではないんだろうか…
>>156 strB = strA <- 変数strBの参照先を書き換えている。
strA="XXX" <- 変数strAの参照先を書き換えている。
>>157 strB = strA <- 変数strBの参照先(アドレス)を書き換えている。
strA="XXX" <- 変数strAの参照先(のデータ領域)を書き換えている。
…という動作を期待しました。
なんで同じ演算子でそんな気持ち悪い動作になるんだよ。
Stringはイミュータブルな参照型で参照型の中でも特別扱いって どんな入門書にも書いてないか?
別にミュータブルな参照型でも同じだろ。
っていう嫌味の一行レスだと161には通じないかな。 Stringが純粋に普通の参照型だとすれば、156の期待は正しい。 158の文章の内容はちょっと怪しいけどね。
158や163の言っている状況をStringBuilderで再現するとこうなるか。 Dim strA As New StringBuilder("ABC") Dim strB As StringBuilder strB = strA strA.Remove(0, strA.Length).Append("XXX") Console.WriteLine("strA=" & strA.ToString) Console.WriteLine("strB=" & strB.ToString)
>Stringが純粋に普通の参照型だとすれば、156の期待は正しい。 どういうこと?
>純粋に普通の参照型だとすれば、156の期待は正しい ( ´・∀・`)へー
>>156 3行目でstrBの内容を"ABC"に書き換えた後、strBの内容は一切変更されていないから。
4行目の処理はstrBの内容を変更しない。
ていうか、VBの文字列Cの文字列などと同じようには扱えない。
はぁ? トートロジー?
純粋な普通の参照型かどうかより、単に代入演算の意味(セマンティクス)の問題だと思う。
>>169 わかってないなら無理しない方がいいよw
少なくとも君の理解は156以下だから。
object a = new object(); object b = a; a = new object(); MessageBox.Show( (a==b).ToString() ); //false ってだけの話ちゃうのん
ちゃうだろ
どうみても
>>171 ってだけの話だろ。
なんでおかしなこといってるやつがこんなに多いんだ。
文字列は特殊だからとかいてってるやつがおかしい。
>>171 文字列の管理機構を考えるとちゃうだろ。
違わない
まあ文字列が絡むと==は別の意味でややこしいから、 ReferenceEqualで書いたほうが意味が明確だな、なんとなく。 別に本質には関係ないんだが。
おはようございます。 文字列を扱うと純粋な参照型ではない。 がここでの結論ですな。あとは気長に勉強しまする。 どうせなら「HELPのここに書いてある」ぐらいは教えてりゃいいのに。 偉ぶりたいだけの回答者もいたみたいだけどありがt
文字列を扱うと、というより.NETの参照型は、と言ったほうがいいと思う。
>文字列を扱うと純粋な参照型ではない。 >がここでの結論ですな。あとは気長に勉強しまする。 あほかちがうっちゅうに。 純粋な参照型だよ。
2005のEE版ではMFCは使いえないよね? VC6は持ってるんだけどてそこにあるMFCでVS2005からMFCを使って プログラム作れるようにしたいんだけど、どうしたらいいかな
VB2005で DataViewのRowFilterの条件記述には、AndAlso, OrElseは使えないんでしょか? ビルドは出来るけど実行時エラーに。 それとも私が間違ってるだけですか。AndとOrなら動くんですが。
なんでAndとOrで駄目なの?
183 :
181 :2007/11/10(土) 11:48:21
>>182 機能的にはOKなので、駄目ではないのですが、
沢山記述するので[AndAlso/OrElse]が良いのかなと思ってます。
RowFileterの条件前にそれつかって条件作成しとけばいいんじゃね?
185 :
181 :2007/11/15(木) 10:52:53
ビューカラムの値に対して、条件指定したいので それは無理そうです。
件数にもよるけどデータなめれば? つうかさ・・・SQLで条件組めば済み話じゃないのかと
187 :
181 :2007/11/18(日) 19:35:19
はい、SQLで済む話なんですけど、 Viewに読み込んでる後なので、そのまま使えれば良いなと。 仕様であれば、仕方ありません。 私の勘違いでView+AndAlsoが使えてないのなら 勿体無いと思ったまでです。
すいません、質問よろしいでしょうか? 現在、簡単なペイント系ツールを作成しています。 拡大縮小機能を実装するべく、 Graphics.DrawImage (Image, Rectangle, Rectangle, GraphicsUnit) にて拡大したBitmapをPictureBox.Imageに代入していますが、 この方法だと、大きな画像を拡大した場合に非常に重くなり、 画像のスクロールもままならなくなってしまいます。 大きい画像を拡大しても重くならない実装方法がありましたら ご教授お願いします。
どれ位なのかしらないけどさ PictureBoxのプロパティで元の比率を保ったまま自動でリサイズしてFitするように描画してくれるのあるじゃない? あれじゃだめっすか?
190 :
189 :2007/11/18(日) 23:08:49
ごめ、読み違えてた スクロールとかしてかつ拡大縮小っつうと以前VB.NETでやったときにAPI使ってやってた それだとWin2000+P4 1.8G Mem512くらいのレベルのマシンでも十分快適に動いたよ 必要があるなら使ったAPIくらい書き込むけど?
191 :
188 :2007/11/19(月) 01:13:29
お願いします!
>大きい画像を拡大しても重くならない実装方法 賢く実装
あんま上級者じゃないから使ってるAPIとかイマイチかもしれないけど CreateCompatibleDC SelectObject ReleaseDC GetStretchBltMode SetStretchBltMode DeleteObject DeleteDC BitBlt StretchBlt 基本は CreateCompatibleDC BitBlt StretchBlt 使って描画関連を行っている感じ これをクラスで独自ラップして適当にイベント出したりしてつかってたよ
そんなややこしいことしなくても発想をちょっと変えるだけでしょ。
変えるというか、普通のWindowsの描画方法で普通にやるだけじゃん。
>>188 のやり方がアブノーマルなんだよ。
何でわざわざビットマップに描画して、それをImageに指定するの。
考え方がヘンテコすぎるよw
コントロールのOnPaintをオーバライドするかPaintイベント捕まえて
普通にコントロールのDCに描画しろよ。
195 :
188 :2007/11/19(月) 19:57:44
ただいま帰りました。
>>193 ありがとうございます!参考にさせていただきます。
>>194 すいません、Windowsプログラミング&C#ともに初めてでして・・・。
出直してきます。
VB2005のWebBrowserコントロールについてなんですが 例えば、WebBrowser1.Navigate("C:\")とすると フォルダの中身が一覧表示されますよね。 この時、表示スタイル(縮小版、並べて表示etc)を、 右クリックのコンテキストメニューで指定するのではなく、 プログラム内部で制御したいのですが、方法がどうしてもわかりません。 ヘルプのメンバ一覧を見てもそれらしきプロパティやメソッドは無かったです。 出来ればWindowsエクスプローラのファイル表示方法をフォルダ毎に取得して、 表示スタイルを同期出来ればベストなんですが、WebBrowserコントロールでは そういう事は不可能なんでしょうか?
>>196 どこかでも同じ質問してたね。
WebBrowserのメンバにそういうプロパティやメソッドがあるかと思うような人だから
説明してもどうかと思うけど、一応書いてみる。
簡単な方法
ネイティブListViewコントロール(SysListView32)のウィンドウハンドルを探して
LVM_GETVIEW / LVM_SETVIEWをSendMessage
面倒くさい方法
リフレクションを使ってWebBrowserのインスタンスからaxIWebBrowser2という名前で
IWebBrowser2インターフェイスを取得。
→IServiceProviderにキャスト
→IShellBrowserをIServiceProvider.QueryService経由で取得
→IShellViewやIFolderViewをIShellBrowser.QueryActiveShellView経由で取得
→いじり放題
いずれにせよ、エクスプローラの設定を読み込んで同期するのは骨でしょう
>>197 マルチですみません。
プログラム内で制御するとなると、結構大変そうですね。
APIやReflectionはほとんど使った事が無いので勉強して試行錯誤してみます。
ありがとうございました。
C++/CLIを使っていて、AxWindowsMediaPlayerコントロール上にD&Dでのファイル読み込みを実装したいのですが、 AllowDropプロパティはあるのに、DragEnter, DragDropイベントがありません。 Win32APIではDragQueryFile()等で実装できましたが、.NET Frameworkではどのようにすれば実現できますか?
.NET2.0でTrayMeter(ネットワーク送受信速度をトレイに表示)作ろうと思います IPV4なんたら使用してそれらしきものは出来たのですが、どうも要らないものまでカウントしているようなのです ローカルエリア接続アイコンが光らない時でも何か受信している様子 もしかして非ユニキャストとか言うものがやって来てるのでしょうか もしそうなら、非ユニキャストの「バイト数」を取ってくる方法を教えてください 非ユニキャストのパケットサイズでもいいです または、ローカルエリア接続のプロパティに出て来る受信バイト数でも構いません よろしくおねがいします
.NET2.0で非ユニキャストパケットのサイズを知る方法はありますか? または非ユニキャスト総バイト数でもいいです ローカルエリア接続のプロパティの受信バイト数が直接取れればベストなんですが IPV4なんたらのは違うようなので
ありゃ 投稿後のリロードで出てこなかったから蹴られたかと思ったorz 201=202=自分です 申し訳ない
204 :
デフォルトの名無しさん :2007/12/20(木) 22:33:29
教えてください。 VS2005 C#を使ってます。 タブコントロールですがCtrl+Tabでタブが切り替わるのですが、これを禁止する方法はありますか? よろしくお願いします
継承して以下のメソッドをオーバーライドでどよ。 protected override bool ProcessCmdKey( ref Message msg, Keys keyData ) { if( ( keyData == ( Keys.Control | Keys.Tab ) ) || keyData == ( Keys.Control | Keys.Shift | Keys.Tab ) ) { return true; } return base.ProcessCmdKey( ref msg, keyData ); }
206 :
デフォルトの名無しさん :2007/12/21(金) 19:33:44
ワタクシも教えて下さい。 VS2005 VBですが、 テーブルレイアウトパネルのサイズを動的に変更したり、 場合によってラジオボタンorチェックボックスの表示を切り替えたりすると 画面描画が遅いのが目立ちます。 PC性能アップ以外に早くなる方法があれば教えて下さい。 C#にすると早くなったりしますか?
詳しくは知らないけど.NET使ってれば同じじゃね? 俺はVBからVC++に乗り換えたけど.NET使ってプログラム組んでるやつはそんなに速度変わらないよ
色々いぢくった後に纏めてRefresh()とかやれば多少はマシになるんでないか 実験してないが
>>206 IDEで実行して言ってないよね?w
Releaseのバイナリを直接動かしてみた?
210 :
CeleronM 1.5G :2007/12/22(土) 10:35:13
>>207-209 ありがとうございます。
描画速度だからC#でも同じですかね。
ちょっと検討してみます。
バイナリ直接でも遅いです。
未だVB詳しくないもんで、特別に何か巧い手があるかなと思ったんですが。
冗長コーディングとかして速さ追求してみます。
211 :
デフォルトの名無しさん :2008/01/04(金) 23:43:37
Matrixについての質問なんですが、指定した点(アンカーポイント)についてのスケール変更 ってどのようにするのでしょうか?一度原点を移動してからスケールを変更しても 原点移動しないでスケール変更したのと同じになってしまいます。 回転や平行移動などは原点の移動で指定した点についての変形ができるのですが、 どうしてもスケール変更だけは上手くいきません。 なぜでしょうか?
ギャァァァァァァァァァ すいません、ageてしまいました。 吊ってきます orz
VS2005 VB で質問です。 条件分岐でファイルがある場合は読み込み、 無い場合は作る。といった感じの動きをしたいんですが、 ファイルが無い場合に、else以下の処理でファイルを作った後に 上に戻ってファイルを読む動きをしてしまいます。 ソースをどこまで書けばいいのか分からなかったのですが、 下記がif文の中身です。勉強がてら2chブラウザを作っていまして。 exit subを入れても動作は同じでした。どこで戻るのか全く分かりません… よろしくお願いします。
If System.IO.File.Exists(CurDir & "\" & MyBordNunber & ".dat") = True Then '取得データがある場合 Dim MydownFile As StreamReader Dim Mytext As String Dim MyLine As Integer = 1 MydownFile = New StreamReader(CurDir & "\" & MyBordNunber & ".dat", Encoding.Default) '改行コード数 Do While -1 Mytext = MydownFile.ReadLine() If Mytext Is Nothing Then Exit Do End If MyLine += 1 Loop RichTextBox1.Text = MyLine
Else '取得データが無い場合 MyHead = "GET /" & MyBordKey & "/dat/" & MyBordNunber & ".dat HTTP/1.0" & vbCrLf & "Host: " & MyHost & vbCrLf & "User-Agent: Monazilla/1.00" & vbCrLf & "Connection: close" '送受信 MyWrite.WriteLine(MyHead) MyWrite.WriteLine("") Mydat = MyReader.ReadToEnd MySocket.Close() 'レスポンス判定 If Mydat.Substring(9, 3) = 200 Then 'dat保存 Dim MyLasttime As String MyLasttime = 1 RichTextBox1.Text = Mydat TextFlag = Mydat.IndexOf(vbCrLf + vbCrLf) + 4 Mydat = Mydat.Substring(TextFlag, Mydat.Length - TextFlag) Dim MydatWrite As New StreamWriter(CurDir & "\" & MyBordNunber & ".dat") MydatWrite.Write(Mydat) MydatWrite.Close() Else RichTextBox1.Text = "見つかりません" End If End If
貼り付けたらネストが…
ごめんなさい。 Handles Button1.Click, Button1.Click と繰り返してました… スレ汚し申し訳ないです。
生兵法は怪我の元。 マジメに基礎から勉強せえや、としかいいようがないと思うけど。。
みなさん ''' とか /// 使ってます?
使ってる
使うてる
使っとう
ファイルあるかな? if (なかった) { ファイルを作る } ファイルを開く ファイルを読む ファイルを閉じる
>>223 作ったばかりのファイルから一体何を読むんだい
225 :
デフォルトの名無しさん :2008/01/17(木) 13:43:09
どうか教えてくださいお願いします。
1.
.NETの文字列型(String)の内部コードってUTF-16ですよね?
以下にそう書いてあるし。
http://msdn2.microsoft.com/ja-jp/library/1w71hb4e (VS.80).aspx
2.
それと以下にはASP.NETでは入出力にUTF-8が使われると書いてありますが、
これはあくまで入出力の問題であって、.NETのString型の内部コードとは無関係ですよね?
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet16/aspnet16_04.html 3.
そこで気になっているのが、
プロパーから提供されたソースに以下の様なコードがあってですね、
"^[ -~。-゚]+$"
これは正規表現の文字列なのですが、
半角文字のみで構成されている文字列の時にOKとしたい様なのです。
内部コードがUTF-16の場合にこれで上手く行くのか不安です。
.NETのStringの内部コードがUTF-16ならば、正規表現もUTF-16で動く筈ですよね?
#今UTF-16のコードページを見ていたら、半角片仮名の並びがShift_JISと同じでした。
#これはこれで上手く動きそうです。
#ですが、正規表現の内部コードについて知りたいのでお願いいたします。
自分はVB.NET 2005とASP.NETを使ってwebアプリ開発をやっています。
OSはクライアントはWinXPSP2、サーバーはWin2003SP?です。
コード云々より、その正規表現エンジンの仕様を調べる方が先だろう
227 :
デフォルトの名無しさん :2008/01/17(木) 22:41:32
>>225 危ない橋を渡るより、文字数とSJISのEncodingのバイト数が一致するかどうかを調べる
確実な方法に変えた方がいいと思う。
>>226 何いってんだコイツ?
それは確実なのか?
U+FF61-U+FF64: Halfwidth CJK punctuation U+FF65-U+FF9F: Halfwidth Katakana variants
難読化するにはDotfuscatorしかないのかな?買おうとするとやたら高い。 Dotfuscatorの入手手段は、いまのところVisualStudio購入するとついてくるCommunity版か、 販売されてるProfessional版の2択であってる?
フリーで何かあったはず 名前忘れたけど ついでに.NET2.0以降に対応してるかも不明 見つけた時は.NET1.1しかなかったから
フリーのあるのかと思い .NET 難読化 フリー でググったら、 NanDoKu っていうのが見つかった。 更新もされていていま.NET2.0でも使えるらしい。 これ良さそうだね。ありがとう。
フォームをモードレスで表示するけれど、フォームを閉じるまでは呼び出し側を終了しないって言う風にするにはどうすればいいですか?
235 :
234 :2008/01/21(月) 04:12:07
あ、丁度適当なスレを見つけたので移動します。失礼しました。
236 :
お願いします :2008/01/25(金) 18:52:04
フォームAの開くボタンから別フォームをモードレスで表示して 同じくフォームAの閉じるボタンから別フォームを閉じるにはどうしたらいいですか?
お手軽にやるなら new FormB().Show(this)
いやいやいやいや
239 :
デフォルトの名無しさん :2008/01/28(月) 23:56:45
Win32APIまじりの質問になって申しわけありません。 現在C++/CLIを使用して.NETからWin32APIでの非同期IOを行っています。 非同期IOの完了通知にSystem.Threading.Overlappedクラスを使っています。 非同期での書き込みは完了し、待機イベントもシグナルを受信するのですが、 Overlapped.Packメソッドに渡したコールバックデリゲートが呼ばれなくて困っています。 1 Overlappedをインスタンス化する。(hEventは手動リセットイベントオブジェクト asyncはIAsyncResultを実装したクラス Overlapped ^ overlapped = gcnew Overlapped(0 , 0 , IntPtr(hEvent) , async); 2 Packする。 NativeOverlapped * nativeOverlapped = overlapped->Pack(callback , buffer); 3 非同期IOを行う WriteFile(hIO ,Marshal::UnsafeAddrOfPinnedArrayElement(buffer,0).ToPointer() , buffer->Length , NULL , (LPOVERLAPPED)nativeOverlapped); 4 完了通知を受け取った(hEventがシグナルを受信)あとにリソースを開放する Overlapped ^ overlapped = Overlapped::Unpack(nativeOverlapped); Overlapped::Free(nativeOverlapped); で間違いありませんよね? hIOはFILE_FLAG_OVERLAPPEDを設定して開いてあります。 コールバックデリゲートを呼び出すには何か他の操作が必要なのでしょうか?
VS2008 Expressがダウンロードできない。 各製品のWebインストールもできない。 単に休日で混んでるのか、メンテナンス中なの?
嫌われてるんだよ
ワンピーススレって伸びないよね
.NETアセンブリのDLLをネイティブなオブジェクトファイルと静的リンクする場合、 どの段階でアプリケーションドメインが初期化されるのでしょうか。 ole32などを一緒にリンクすると起動時にプロセスの初期化エラーが出るので、 DllMainで何か悪さをしているような気がしてならないのです。
245 :
デフォルトの名無しさん :2008/02/03(日) 21:30:53
.netでC言語をやりたいですが、どこからDLすればいいですか?
.NETフレームワーク向けのCってのはあまり聞かないな C++拡張でいいのならC++/CLIがあるが
C.net なんか新鮮 つーか質問者はC#のことを言っていると思うが
249 :
デフォルトの名無しさん :2008/02/07(木) 18:15:19
CLIのMSによるWindowsへの実装がCLRですよね。 .NETというのは具体的に何を指すんでしょうか? それとも、具体的なものでなく、MSの考える一連の共通な基盤を挿す包括的・抽象的な概念なんでしょうか?
.NET FxはCLRにWPFやWCFなどのライブラリを加えたもの。
嘘です
252 :
249 :2008/02/07(木) 23:44:11
253 :
デフォルトの名無しさん :2008/02/08(金) 13:58:33
すいません、.net2003で ボタンを押してフォームを開く処理で 呼び出し側は操作できるようにしときたいのですが 何回ボタンを押しても1画面以上開かないようにしたいです。 Public frmList As Form public sub openForm() If IsNothing(frmList) Then frmGamen = New frmDataGamen Call frmGamen .Show() End If End Sub それで上記のように作ったのですが これだとcloseした後2度と開けなくなってしまいます。
間違えて途中で送信してしまいました。すいません。
何度も間違えてすいません。
ソースも間違ってました。
Public frmList As Form
public sub openForm()
If IsNothing(frmList) Then
frmList = New frmDataGamen
Call frmDataGamen.Show()
End If
End Sub
これで
ttp://dobon.net/vb/dotnet/form/closeform.html に
>補足:Closeメソッドでフォームを閉じた時は、その後このフォームを表示することはできません。もしフォームを一時的に非表示にするだけであれば、Hideメソッドを呼び出したり・・・
とありますがこれを回避する方法ってありますでしょうか?
何回もすれ汚してすいませんでした。
>>250 .NET Fx=.NET Frameworkの略ですか?
FrameworkをFxと略すのって発音的にちょっと変な気が・・・複数形のFrameworksだったらいいんだけど
>>256 .NET Freamwork FX は開発コードで Feature X の意味だったような・・
製品化された後の名称が.NET .Freamwork 3.0
>>255 >Call frmDataGamen.Show()
は
frmList.Show()
の間違いと考えていい?
それからクラス名は大文字で始める。frmのようなハンガリ記法は避ける。
この場合はFromDataGamenとするのが推奨。
>>257 あれ、WinFXが.NEW Framework 3.0になったと記憶してましたが・・・?
もしかしてその名残で.NET Fxって言うのかなぁ
>>250 は単純にWinFXのタイポだろ?
実際 3.0 = 2.0 + WPF + WCF + WF なんだから
>>258 >それからクラス名は大文字で始める。frmのようなハンガリ記法は避ける。
ここまでは格好良かったのに…!!
>この場合はFromDataGamenとするのが推奨。
Fromだと!?
しかし目から鱗だ。
frmとかlblとかtxtとか普通に使っちゃってるよ。
辞めた方がいいのかな。
ご指摘ありがとうございます。 frmList.Show()の間違いでした。 また自己解決できました。 If IsNothing(frmList) Thenを If IsNothing(frmList) OrElse frmList.IsDisposed then で再表示させることができました。 ありがとうございました
>>260 そうですよね。
>実際 3.0 = 2.0 + WPF + WCF + WF なんだから
あとWCS(Windows CardSpace)もですね。
ところでクラスライブラリやCLRは2.0から「全く」変わってないんでしたっけ?
うん
>>256 .NET Fxって略称はMSFTの人とかが時々使ってるね。
スライドとかで目にすることがある。
>>264 実際のところはバグフィックスとか入ってるらしいから、
全く同じかというとそうでもないかもしれない。
.NET Framework 3.5では既存部分 (2.0, 3.0)にも手が入っていて、 それぞれSP1として公開されている。
ふと思ったんですが どこからも参照されなくなったインスタンスを、GCに回収される前に裏技など使ってとっ捕まえる方法ってあるんですか?それとも原理的に不可能?
っ Finalizeメソッド
271 :
269 :2008/02/10(日) 00:47:35
>>270 あ、Finalizeも定義してない場合です。 なんというか、完全に.NETのメモリ管理領域(マネージヒープ?)に漂ってる場合です
>どこからも参照されなくなったインスタンス
273 :
269 :2008/02/10(日) 02:13:02
忘れることにしますw こういう馬鹿なこと考えるのはちゃんと.NETを勉強してからにしよう。
>>269 インスタンスメソッドへのデリゲートを握られることって参照を握られることに
なるんだっけ?
もしそうでないなら不可能じゃないと思うんだけど、まあそんなことはないよな。
どこからも参照されなくなったら、WeakReferenceもクリアされるかと
参照を持っとくことはできるけどGCをフックできない。
長い弱い参照のWeakReference(object, true)というのはどういうとき使うのだろ。
時々しか必要にならないオブジェクトがあるとして、
そいつのインスタンスをずっと保持してるとメモリが無駄になるし、
かといって必要な都度作成するようにするとパフォーマンスが犠牲になる。
こういう場合の「いいとこどり」狙いでしょ。違ったっけ?
ちなみに
>>275 はナンセンスだよねw
なんでこういう一行レス専門の奴ってアホなんでしょw
>>279 そういう目的に弱い参照を使うなとMSDNに書いてあったと思うよ。
>>279 「長い」弱い参照の意味わかってるかね?
はっきり言って弱参照はなかなか活用しにくい。 javaにある、なんていったかな、ソフト参照だっけかな(違ったかも)? そういうのなら活用できそうなんだがね〜 大抵すぐに思いつく、キャッシュ方面に用途には、 少なくとも単純には使えない(実質うまく動かない)。
>>269 の言ってることを文字通り受け取ればWeakReferenceは違うのだろうけど、
もしオブジェクトの状態を試験的に追跡したいだけなら、
別スレッドからでIsAliveでポーリングすればいいわけだからあながち間違いとも思えない。
「長い」弱い参照については目的はわからないが確認できた動作は
デストラクタが呼び出された後から確保されたメモリが消失するまでの間も
IsAliveがtrueということだった。
「短い」方はデストラクタが呼び出されたときにIsAliveがfalse。
それはきっとファイナライザのことだよね。
>>284 おっと.NETスレだった。C#の用語で書いてしまった。
C#のデストラクタ=ファイナライザということで。C++/CLIだと違うのだよな。
「復活」させた場合でも追跡したい場合に使うのが「長い」弱い参照。 でも復活自体まず使う機会がない。
>>285 C#も2.0からファイナライザという言葉を使うようになりました。
>>286 確かにMSDNにそう書いてあるのだけど、
具体的にどうすることなのかが見つけられないんだよね。
復活というのはどうすることなのかサンプルコードとかないでしょうか。
マイクロソフト
ファイナライザで参照を保存するんだよ>復活
HttpWebRequestは同時使用数に制限があるのでしょうか?
例えば下のプログラムをループで回したりすると途中で
操作がタイムアウトになりましたとWebExceptionが発生します。
最後のコメント外してAbortを有効にすると例外はでないのでリソース
競合だとは思うのですが、大量の要求を他に転送するようなシステム
は困りそうな気がします。どうやって回避しているのでしょう?
Sub Test()
Dim req As HttpWebRequest
Dim reqStrm As Stream
req = HttpWebRequest.Create("
http://localhost/ ")
req.Method = "POST"
reqStrm = req.GetRequestStream()
If Not IsNothing(reqStrm) Then
reqStrm.Close()
End If
'req.Abort()
End Sub
同時に同じホストに張れるコネクションの最大値がHTTPの仕様で決まってる。
>>293 d。
でも、GetResponse()呼んでればわかるけれど
GetRequestStream()の時点というのは変ではありません?
簡単にいえば、人間からの入力を受け付けたり、出力を行ったりする 人間とコンピュータの接点となるものを意味する概念。 そこの文章では、ようするに画面に何か表示したり マウス・キーボードなどから人間の入力を受け取ったりする機能を 持っているコンポーネント(≒クラス)がコントロールだと言っている。
297 :
295 :2008/02/14(木) 15:09:31
>>296 処理の流れとしては、↓のような感じですよね
「マウス・キーボードなどから人間の入力」⇒イベント発生⇒そのイベントがWindowsメッセージキューに並ぶ⇒イベントハンドラで処理
というか、Controlを継承してるのだからイベントを持つのは当たり前ですよね・・・
つまらない質問してすみませんでした。ありがとうございました。
ダイアログボックスのサイズを指定したいんですか、 System.Windows.Forms.MessageBox ではできないんですか?
節子、それダイアログちゃう
300 :
節子 :2008/02/16(土) 04:16:25
ちゃうでしたっけ? MessageBox.Showにはサイズ指定できそうなのは無かったス・・・やっぱ無理ぽいですね
無理だとわかった瞬間諦めるのが初心者。 そこで継承という考えに行き着けば、初心者を抜け出せる。
継承でなんでも出来ると思ってる
303 :
デフォルトの名無しさん :2008/02/18(月) 11:09:05
継承で大概なんでもできるでしょ。
継承にせずに、メンバにすべきときもある。
305 :
デフォルトの名無しさん :2008/02/18(月) 11:51:21
メッセージボックスのサイズを変えたいだけなのに、0から作り直せと?
継承する意味があまりない
307 :
デフォルトの名無しさん :2008/02/18(月) 12:32:00
Applicationクラスにモーダルに入る時のイベントがあったと思うから、 そのタイミングでWin32APIつかっていろいろやればできるんじゃないの?
309 :
デフォルトの名無しさん :2008/02/18(月) 12:52:46
お 前 汎 用 性 と か 考 え て な い な
既定のフォント使って文字列の長さ調べてそれに従ってフォームの大きさ変えて オプションでボタン変えてアイコン表示して音ならすモーダルなフォーム作ればいいだけ それに大きさ指定するShowメソッドのオーバーロード作っとけばいいだけ あとタイムアウトで自動で消えるオーバーロードも作ればなお良し メッセージを音声合成でしゃべればユーザーフレンドリー 気分によって背景画像変えたり動画ファイルも再生できたりしたら最高
>>309 誰もがお前さんのように知恵が足りないと思うなよ馬鹿w
汎用的にする方法なんていくらでもある。
メッセージボックスは容赦なく画面をはみ出すすげー奴なんだぜ?
カッコいいよな。
314 :
デフォルトの名無しさん :2008/02/19(火) 09:24:26
>>311 「方法はいくらでもある」とかいって、結局抽象的な答えしかできないやつって馬鹿だよね。
うちの上司にもいる。
結局
>>298 の質問に答えられてないし。
なんかうるさい奴だな
継承で実現する方法書いて見ろよ。
おれは
>>311 じゃないが
メッセージボックスてどの程度いじれたっけ? API使ってもあんまりいじれないってことあったりしない?
みなさんは、.NET で開発をして、他の環境で動かなくて 苦労したなどの経験はありますか? 私は2003の時ですが、Frameworkのバージョンを同じにして SPなどをいれても、途中でエラーで終了してしまうという ことがおきることがありました。これは2005では改善されていて ちゃんと動作しましたが、今後このようなことが頻繁に起きる ようであればその対策も考えなくてはなりません。 みなさんがアプリを作成した時はいかがでしょうか。 よろしくお願いします。
そんな確実に起こることだったら、まず自分のプログラムのバグを疑うよ。
だな
ASP.NET で C# でコーディングをしていますが、 従来で指定していた、using System.Data.OleDB; のコードを書いても エラーが出てしまいました。 どうやったら、この指定をしたら良いのでしょうか。
>>320 どんなエラーが出たか書かないと答えようがない。
可能ならそのメッセージをそのまま詳細にアップ。
>>321 ASP.NETでは、usingとかくのではなくて、
<%@ Import Namespace="System.Data.OleDb" %>
と冒頭に書くというルールとなっているようです。
自己解決しました。
ありがとうございました。
コードビハインドじゃないってことかよ。
VB.NETのMakedTextBoxコントロールで、書式設定された文字列はTextプロパティで取得できますが、 書式設定されていない文字列は取得できないのでしょうか?
System.Drawing.Colorの色ってVS上でサクッと確認できないんでしょうか? PaleGoldenrod とか言葉だけだとイメージし辛いもので
ASP.NETの、メリットがいまいち分かりませんので質問です。 開発効率性が良いという話ですが、言語の仕様の他、ASP.NET特有の仕様を 学ばなければならず、すごく労力をかけなければ、Hello World程度の スキルからなかなか上に上がれないように思えました。 PerlやPHPの方が、言語仕様を覚えるだけで出来ますので、簡単に 見えるのですが。
C++.NETで開発ってどうなんですか? 余り聞かないですし、ネットの解説の具体的なコードでも VB.NET や C# が非常に多く、「C++.NETは特別なので省く」 等と書かれていることが多いです。
そういうことだ。
てか実際、C#で開発するメリットってなんだろね? 細かく制御したいならC++のがいいし、適当でいいならVBのが簡単だし
>>326 ASP.NET仕様単体で見るからそうなる
VisualStudio込みで考えんと
>>327 某制御系で使ったオレが通りますよ
存在価値は旧来のアンマネージライブラリと.NET併用が比較的楽
旧資産が無くなれば廃れる存在だな
>>330 そうだな。VBと比べると、無駄と思えるようなコードが表示されていたり、
コーディング中に自動で修正が入らないので、それでエラーが出たり、
間違えてクリックして出来たイベントハンドラを削除したら
エラーになったりとか、不便なところが多いな。
こういう経験をする前は、VBは将来が無いからC#の方が・・・と
思ったりしていたが、便利なVBの方が良さそうに思える。
>>331 レスありがとうございます。
> ASP.NET仕様単体で見るからそうなる
> VisualStudio込みで考えんと
VisualStudio自体の機能も関係しているのですね。
そのあたりを中心に調べて見ます。
ありがとうございました。
>>332 その問題は2005(C#2.0)で解消されたよ
VBで便利と思えてしまうのはヤバくね?
>>335 「便利だから利用する」という流れは当たり前だが、「それしか知らない」と
やばいだろうね。過去のCOBOLやVB6専用のプログラマと同じ運命になりかねない。
いいも悪いも、C#.NETとVB.NETなら、表面上の文法が違うだけで中身はほぼ一緒と思うのは俺だけか? 個人的にはC#の文法の方が好みだが、実質的な違いは無いような気がするよ
>>337 今は、まったくと言っていいほど同じ。だけど、将来は異なる。
どちらかというと、VBの開発モットーは、便利機能をつけてホビー向けと
して販売する方向だから。
Σ (゚Д゚;)ハッ この流れもしやDelphiモンリー?
>>338 だからってC#が据え置きで、VBにだけ便利機能が付くんだったら、
逆に「やっぱVBが便利」で終わっちゃう
いくらホビー用として売ったって、使えるなら仕事で使っちゃうもんだし
C#にはVBに付かないも〜っと☆便利機能がついちゃったりするんだろうか
>>340 仕事でもVBを使っていく流れになると思うよ。
便利機能が沢山ついてくるからね。(何かモジュールをいれないととか、
限定する条件がついてくるかもしれないけれど)
なので、C#の方向性がいまいちわかんないね。中途半端すぎだから。
しかし、M$が開発用のモジュールとして使っている言語はC#が多いと聞く。 確か、変数の定義などが厳密だからという理由だったかな。 開発環境を作る為の言語っていう位置づけで役に立っているのは事実のようだw あとは、Paint.NETだけだな。
>【IT】米MS、世界の学生に「VisualStudio2008」「WindowsServer2003」など開発ツールを無償提供へ。ただし日本は含まれず[2/20]
>
ttp://mamono.2ch.net/test/read.cgi/newsplus/1203515597/145 >「多くの学生はLinuxやApache、MySQL、
>PHPといったオープンソースのソフトウェアを組み合わせてWebサイトを構築するよりも、
>Microsoftの強力なツールを使いたいと思っているはずだ」
____
/ \
/ ─ ─ \
/ (●) (●) \
| (__人__) | それはない
\ ` ⌒´ ,/
r、 r、/ ヘ
ヽヾ 三 |:l1 ヽ
\>ヽ/ |` } | |
ヘ lノ `'ソ | |
/´ / |. |
\. ィ | |
>>342 QTabbarとPowerShell(用のアセンブリ)は普通に便利かと
>>343 どっちかというと削除法でこれしかないって感じですね
ってなんで俺が答える側にw
>>340 VBにだけつく便利機能って何よ?
ある程度以上の規模ならVBよりもC#なんじゃないのJK?
My
「VBにだけ便利機能がつく」という解釈は、誤解を生むんじゃないかな。 「VBのモットーは、開発を手軽に、早くする方向であるので、今後は その方向性に味が出てくる」でどうよ?w C#の味を誰か教えてくれw
ヒント:誤解で丸め込む
(){}[]<>が適度に使える言語であることが冗談でなくCから入った自分としてはかなり大きいです
javaやってた俺から見るとC#はかゆいところに手の届くjavaって感じで使いやすい もうjavaには戻れないかもしれん。。。
ヒント:アストロターフィング
>>347 同じじゃね、対応表準備したら機械的にテキスト置換しやがれ、VBからC#へ移せと
逆も同様、C#に何か変な夢でも見てないか?
C言語風VB.NETだぞ
>>353 そりゃ、今は同じだろう。
しかし、将来はどうなるか方向性があることだろう。
ヒント:ドトネトの次が出てる
ないんじゃね、1.0->2.0->3.5と、同じ機能が双方に追加されて来ているし
大丈夫、クラスベース言語の次にはオブジェクトベース言語が出るというか、出た。 クラスベースAPIのドトネトは古きものへとwww
>>357 プロトタイプベースの事を言っているのなら、代替え機能的なものが.NET3.5より入ったぞ
>>358 だからクラスベースAPIのドトネト終焉wwww
なーんだ。ただの構想だったのか。期待して損したw
>>353 Option Strict OffなんかC#にはないだろ(C# 4.0のdynamic dispatchなんて話もあるけど)。
逆にVB.NETにunsafeはないし、機械的に変換できるほどそっくりさんではない。
>>361 めったに使うことのない例外を挙げて変な方向に議論誘導するなよw
>>351 自分は一番大きい理由はdelegateの存在かな
あとは演算子のオーバーロードとかジェネリックス、P/Invokeも便利でいいね。
VBある程度できるようになったから、 これからC#かねーと思ってた C言語風VB.NETと言われたら、あんまりやる気しなくなった VC++のが仕事多いよね
俺はVBAを書くことが多かったとか、過去にVBで書いたことがあるとかの 関係から、入りやすいVB.NETやってるけれど、 Webアプリ系では、C#のサンプルを良く見かけるから、それ読むために 仕方なくC#をやってる感じかな。 でも、需要からいうとjavaがいいっぽいよ
だがそのJavaの最後の砦たる鯖用途もASP.NETに喰われてきてる現実
質問です。 これまでAccessのVBAで開発をしていたのですが、.NETをやっていると、 コントロールの使い方が、全く異なっていて戸惑っています。 (コンボボックスやリストボックスへデータを表示させる方法など) これらコントロールの使い方を時間をかけて習得する必要があると 思ったのですが、どんな方法でやるとよろしいでしょうか。 お勧めの書籍やサイトや勉強方法などを紹介していただければと思います。
MSDN
ちょw
バイト列の操作がVBだと面倒くさいしパフォーマンス得られないのが ちょっと鬱陶しいと思う瞬間かな あとは良い感じ
あの全体的にもっさりとした感じが駄目だなw ノートじゃ開発できんし。
.NETってプロセス間通信(COM 2.0)+クラスライブラリ(MS的VCL)+共通中間言語(JVM)って理解でいいの?
腐れマカーですみませんなのですが、 CocoaでいうNSBrowserみたいなのって.NETにはないんですか? 今ListBoxを並べて対処してるんですけど、なんかしっくりこなくて…
NSBrowserって何だろ? OSXのFinderの三段組みになってるやつのことかな
>>372 プロセス間通信はWCFじゃないの
あ、3からだっけ?
一応リモートなんたらは2.0からある 使い道限定されまくりだが
リモート処理なんて最初からあっただろ
379 :
372 :2008/02/28(木) 20:05:45
適当に言うとMS的オブジェクトとクラスをどの言語からも使えますよテクノロジーなのかなと思って
380 :
デフォルトの名無しさん :2008/03/10(月) 21:49:16
あのさ、どっとねっと使うかもって言われてるんだけど、お勧めの本とかあったら 教えてくだちい。
導入本は簡単そうなのなら何でもいいんじゃないの。 どうせ慣れてきたらMSDNのリファレンスと格闘するしかないし。
MSDNの例文、C#のコードは載ってないのにJ#のコードが載ってたりしてピキピキするぜ
…それC#のチェックが外れているのではなかろうか
オンラインの方には載ってるんだが重すぎてかなわん
ググって、リンクをクリックするとmsdn2のほうは、ときどき「ページが存在しません」的なページが表示されない?
.NET Frameworkを使って、ノベルみたいに文字が横に流れるように表示できるのでしょうか? もしできるのであればなにを使えばできるのか教えてください。
「ノベルみたいに文字が横に流れる」の意味がわかんない。
タイマー使って一定時間ごとに表示すればいいだけじゃん?
文字が横に流れる小説
エロゲーみたいに一文字ずつウェイトかけて表示するにはどうすればいいのと聞きたいんだろう ということをいち早く理解して適切な回答をする389
なるほど
しかし仮に
>>389 がエスパーだったとしても、実装するとなると意外と面倒だぞ
安直にやろうとすると激しくちらつくし
フォントサイズとか可変じゃないにしても、1文字ずつ座標計算して出さにゃならんのには変わりない
頭から全部書き直せばいいんじゃね?
タイマーとウェイトを使えばいいんですね ありがとうございました
ファイルのMD5をとりたいです。 で、HashAlgorythm を使ってとるのはわかったのですが これを使うと、一気に最後まで計算してくれるみたいで プログレスバーで現在読み込んだ量を表示したいのですが 出来なくて困ってます。 どうすれば意図したように表示することが出来るのか教えてください。
計算がどのくらい済んだかを知る必要があるんじゃね
読み込みながらちょっとづつ追加していけばいいでしょ
398 :
デフォルトの名無しさん :2008/03/17(月) 21:25:32
VB.NET2005を使用しています。 ボタンをいくつか配置し、押されたボタンに対応した画像を表示したいと思っています。 どのボタンがクリックされたのかを判断するにはどのようにしたらいいのでしょうか? 超初心者のため、ぜひ詳しく教えていただけると助かります。
399 :
395 :2008/03/17(月) 21:30:01
ただいま戻りました。 えーと、そのちょっとづつ読み込む方法がわからないです。 HashAlgorythm.ComputeHash だと一気に全部読み込もうとするし、 HashAlgorithm.TransformBlock は、「出力バイト配列?なんじゃこりゃ」って状態で、 サンプルを見てもよくわかりません。
>>398 Debug WriteLine使えば?
401 :
デフォルトの名無しさん :2008/03/18(火) 00:34:21
if sender = Button1
402 :
395 :2008/03/18(火) 23:52:08
四月からVB.NETを使用することになって予習をしたいと思っているのですが、 最低限の実行環境を用意するにはいくらくらいかかりますか? やはりタダじゃ無理でしょうか?
Visual Basic2008 Express Edition あとはググってみて
405 :
386 :2008/03/21(金) 17:54:48
408 :
デフォルトの名無しさん :2008/03/25(火) 10:15:57
.NET プログラムをWindows以外のOS(Mac、Linuxを想定)で動かす場合、 避けるべき要素または問題となる事柄などや、個々のケースでの 有効な対処方法などありましたら、どなたかご教授願えますでしょうか。 作成中ツールの複数OSでの動作を可能な限り考慮したいためです。 例: ・MessageBoxを呼び出すとWindows以外で○○ ・Windows.Formsを扱うとWindows以外で○○ ・Microsoft名前空間の型を使うとWindows以外で○○
409 :
408 :2008/03/25(火) 10:42:38
>>408 追記
Windows用に使用することを考えている要素としては、
・C#2.0ジェネリック
・マルチスレッド (System.ThreadingとBackgroundWorker)
・System.IO (ファイルシステム)
・System.Net (主にHttpアクセス機能)
・Windows.Forms (GUI全般)
・OpenGL (Windows用はDirectXと切り替え可能に)
・SQL (使用未定、想定として)
などです。
Windows以外で実用してるのってあるのか? あったとしてもレアだから自分で調べたほうが良いと思うが
MS以外の実装で何とか使えそうなのはMONOだけじゃないかな。
Win以外ではmonoしか存在しないだろ、jk。
Silverlightに期待するくらいしか
実用レベルじゃないと思うがあるっちゃある。 DotGNU Project
public class Program { static void Main() { if( OperatingSystem.Platform == PlatformID.Win32NT ) new DispMsgImplWin() .Show( "OK" ); else if( OperatingSystem.Platform == PlatformID.Unix ) new DispMsgImplUnix() .Show( "OK" ); } } public abstract class DispMsgImpl { public abstract void Show( string text ); }
416 :
デフォルトの名無しさん :2008/03/25(火) 16:03:09
// Windows用 public class DispMsgImplWin : DispMsgImpl { public override void Show( string text ) { MessageBox.Show( text ); } } // Unix用 public class DispMsgImplUnix : DispMsgImpl { [DllImport("???")] public static extern void ???( ??? ??? ); public override void Show( string text ) { // ??? } } このような解決のための案をプログラム構造に適用して、 複数OSで動作すること(またはその可能性)を期待したい訳です。 。o O ( もちろん、その各OS固有の実装部分を自分は書けないのですが・・・ )
monoでサポートされてる機能だけを使うようにするくらいだろ ていうかjava使え
418 :
デフォルトの名無しさん :2008/03/25(火) 20:52:08
monoって.NET1.1相当でなかったっけ あとFormm関係壊滅とか見た記憶が
そもそも.net frameworkってなんですか?
422 :
デフォルトの名無しさん :2008/03/26(水) 16:00:15
相談なのですが データグリッドにCSVから読み込んだデータを表示しました。 まず読み込んで表示させるのが第一目標でそれは達成できたのですが 次にこれをチェックボックス付にさせたいのです。 データグリッドビューに表示させるのをチェックボックスをフォームに設置して これに表示させるように式を変えたりしたのですが、CSVのデータを読みこまないで おかしなチェックボックスリストができあがってしまいました。 どうかご助言の程お願い致します。
423 :
デフォルトの名無しさん :2008/03/26(水) 16:05:57
ちなみにソースです Dim dt As New DataTable Dim row As DataRow dt.Columns.Add("あ", Type.GetType("System.String")) dt.Columns.Add("い", Type.GetType("System.String")) dt.Columns.Add("う", Type.GetType("System.String")) Using parser As New TextFieldParser("C:aaa.csv", System.Text.Encoding.GetEncoding("Shift_JIS")) parser.TextFieldType = FieldType.Delimited parser.SetDelimiters(",") While Not parser.EndOfData row = dt.NewRow row.ItemArray = parser.ReadFields dt.Rows.Add(row) End While Call parser.Close() DataGridView1.DataSource = dt (ここの式をチェックボックスにしたらおかしくなりました・・・) End Using
424 :
デフォルトの名無しさん :2008/03/26(水) 16:06:50
422=423です すみません。
425 :
422 :2008/03/26(水) 17:38:58
何度も投下すみません DataGridView1.DataSource = dt Dim dc As DataColumn dc = New DataColumn("Column1", GetType(Boolean)) dt.Columns.Add(dc) とあるサイトを参考に↑を入れたら一番後ろにチェックボックスが作成できました。 本当は先頭に入れたいのですが…この疑問とともに 上記の文章でおかしいところなどございましたらご指摘いただければと思います。
宿題は自分でやりましょう ※この上にチェックボックス用のフィールドを追加する行を一行記述 dt.Columns.Add("あ", Type.GetType("System.String")) ※このイコールの後にチェックボックスの値をStringでデリミタ込みで追加記述 row.ItemArray = parser.ReadFields
427 :
422 :2008/03/28(金) 08:37:23
<426 ありがとうございます! 宿題ではないのですが、そう思われないような質問の仕方に気をつけたいと思います。
>>427 それ以前に、自分が書いているコードの1行1行が
何を意味しているのかくらい、理解してから来なさいよね
それが出来たら初心者スレに来ねーだろw
それをしようとしないのを初心者とは呼ばない 自助努力を促すのも、初心者救済の一手だと思う
ヒントも与えんで自助努力も無いと思うがねw
432 :
デフォルトの名無しさん :2008/03/29(土) 10:02:11
妙な流れの中すんません。 >418 ですがレスもらえないでしょうか。 PanelのAutoScrollに任せずに、自分でPictureBoxにスクロールバー貼り付けた方が いんでしょうか?
>>432 そこのサイトちゃんと読んでないでしょ?w
> これによりPanelコントロールの中に配置されたコントロール(本稿の場合ではPictureBoxコントロール)がPanelコントロールのサイズよりも大きい場合に、自動的にスクロールバーが表示されるようになる。
>>433 君恥ずかしい奴だね。
ちゃんと読んでない?
それ誰のこと言ってんだよw
436 :
418 :2008/03/29(土) 21:50:44
>>433 あの、ちょっと違うくてスクロールバーの表示/非表示の話じゃなくて、スクロールバーの
動作の話なんです。(
>>433 さんはわかっておらてるようですが)
BCBからやっとこさ移行しようかなと思ったんですが、BCBならスクロールバーのプロパティ
で Tracking = true; ってやればできたんですが、なんか似たやり方無いのかな?と思って。
いろいろ試してみますが、ゆっくりやってますので、わかる方がいらっしゃれば思いついた
ときにでもレスお願いします。
437 :
418 :2008/03/29(土) 21:53:18
>>435 再読込したら変なのが湧いてるな。氏ねよ。
439 :
デフォルトの名無しさん :2008/04/03(木) 14:53:07
.NET Framework 3.5をインストールしておけば、 2.0と3.0用に開発したソフトも 正しく完全に動作するとおもっていいのでしょうか? MSのホームページをみると、 実行することができます、と書いてましたが、 MSの言うことなのでイマイチ不安です・・・
もちろんMSの言うことですからおもってはいけません。 バージョンが同じでも仕様と現実とに差異があるくらいですから。
3.5をインストールするのは2.0と3.0と3.5を順にインストールしたのと一緒だよ
やっぱりですか・・・ まんどくさいですが、2.0と3.0も 一緒にインストールするようにします・・・
443 :
デフォルトの名無しさん :2008/04/03(木) 15:04:35
>>444 ありがとうございます。
そのページは見てませんでした。
>>440 今回は、その違いがあるということが(2.0と3.0の)SP1として表れている。
だからといってMSを疑っても全く意味がない 1.1と2.0系の関係とは違う
1.1と3.5だけでいいってことね
また、次でドトネトじゃないものに変わっちゃうんじゃね? 時代はRIA。
450 :
デフォルトの名無しさん :2008/04/07(月) 10:29:10
このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている ・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる 糞だけど、政治的な理由で無理やり使わされているんですよね。 もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。 ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。 ・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
451 :
デフォルトの名無しさん :2008/04/07(月) 10:37:57
質問です。長文失礼します。 1つのソリューション内に、 2つ以上のプロジェクトがあり、 それぞれのプロジェクトから、 同じクラスモジュールのファイルを参照したいのですが、 どうすればいいのでしょうか? たとえばSol1というソリューション内に、 Pro1,Pro2というプロジェクトがあり、 2つのプロジェクトの両方から、Class1.vbという クラスモジュールを使用したいのです。 「追加」−「既存の項目」で追加すると、 Pro1,Pro2のフォルダの下ににそれぞれ違う Class1.vbができてしまいます。 別プロジェクトを作ってDLLを作るほうが いいのでしょうか? あまり外部依存ファイルを増やしたくないのです・・・ よろしくおねがいします。
既存項目の追加ダイアログでファイルを選んだら, 追加ボタンの右にある下向きの三角ボタンをクリックしてリンクとして追加を選ぶ お勧めはしない クラスライブラリのプロジェクトを作って既存プロジェクトを追加でソリューションに追加した方がいい DLLは増えるけどまったく変わらん
>>452 すばやいレスありがとうございました。
目的のことができました。
やはりDLL増やしたほうがいいんですねぇ。
その案も考慮して進めていきたいとおもいます。
エラー発生時のExceptionから取得したStackTraceから各関数の引数の値って取得できますか?
455 :
デフォルトの名無しさん :2008/04/07(月) 18:23:42
ラベルが100個くらいあるフォームで (ここはつっこまないでw顧客の要望なんです・・・w) BackgroundImageを設定すると、 フォームの表示がむちゃくちゃ遅くなるんですが、 どうにかならないでしょうか? BackgroundImageを無しにするとそれなりに早くなります。 ちなみにラベルの背景色はTransparentで透過するようになっています。 というかもうデザインの時点でかなり重い・・・
文字を全部BackgroundImageにGraphicsで書き込めば?
>>455 BackgroundImageを使わないで済むよう顧客を説得する
もうー最後 VBとC#どっちがいい?
C#
C#
じゃあ俺はVBで
こうじゃね VBで十分な人>>C++を使いたい人>C#を使いたい人
463 :
デフォルトの名無しさん :2008/04/09(水) 10:00:16
オヒス2007にしたら、氏ぬ程モッサリなんだが。。。 起動も20年前のUNIX+X-Windowワークステーション、 ウィンドウの描画もIME起動も1瞬止まったかのよう。 まさか、ドトネトで開発した?
気持ち悪い文章だ
465 :
デフォルトの名無しさん :2008/04/14(月) 17:22:08
コレクションをジェネリックで実装するときに コレクションの値を キーとインデックスを両方つかって参照したいのですが、 List(Of T)だとインデックスだけだし Dictionary(Of T)だとキーだけ・・・ 両方つかえるコレクションは作れないのでしょうか?
KeyedCollection
ありがとうございます。 Listとは違う名前空間だったので、 気がつきませんでした・・・
えらそうに仕切る前にレス番くらい確認しような
470 :
デフォルトの名無しさん :2008/04/20(日) 21:16:08
なんで.NETアプリはメモリ使用量が大きいんですか? 例えばtwintailという.NETの2chブラウザはスレッド1個見ただけで60MBぐらいメモリを食いますが、 これはプログラムの作り方の問題なのか、.NETの欠点なのかどちらでしょう? この程度の小さいデータを扱うアプリなら5〜10MB程度のメモリ使用が妥当だと思うんですが。
共有ライブラリをロードするから
クラスライブラリの使う分だけをスタティックリンクして、 frameworkなしで動くネイティブアプリを作るコンパイルオプションはありますか?
メモリ食いなのは確かだが、タスクマネージャのメモリ使用量は 指標として役に立たないことは覚えておいたほうがいい。
そう、使えるときは使って、 使えないときは潔く諦めるのも大事だよ。
>>470 Live2chもちょっと長く立ち上げてると150MBくらい逝くから
アプリの特性じゃね?
IEコンポ使わないと作るの大変だしな
2chブラウザでIEコンポーネントなんか使う訳ないだろ。 dat取得とか知らないのか。
>>478 dat取得したのをローカルにhtml加工してから、IEコンポーネントで表示してるはず。
すくなくともギコナビは使ってる。
IEコンポーネントはなんかリークしてる気がするんだよね
>>479 貴方みたいな姿勢は尊敬するけど華麗にスルーしていいよ。
胃が痛い・・・
>>479 URLリンク部分を色変えて表示したりするためだけに、馬鹿でかいIEコンポを内部に組み込むのか。
「瓦一枚必要だから家を一軒買ってきました」みたいなノリだな。
>>482 IEコンポーネントを使っちゃった以上、
CSSやJavaScriptでスキンを作れるなんて機能もある始末。
>>482 >URLリンク部分を色変えて表示したりするため
しかしこれがFAQなのも事実。
RichTextで文字列の色変えたり、リンク貼ったりしたいという質問は多い。
リソース使用量に対するパフォーマンスを考えるとブラウザのレンダリングエンジンは相当優秀だよ。
485 :
デフォルトの名無しさん :2008/04/21(月) 12:33:51
>リソース使用量に対するパフォーマンスを考えるとブラウザのレンダリングエンジンは相当優秀だよ。 パフォーマンスじゃなくて技術力の問題だろ。 2chブラウザごときにIEコンポを使おうと判断する奴が無能すぎるだけ。 テキスト中のURL部分の抽出なんか正規表現使えば簡単にできるのに、それすら知らない無知無能。 だいたい.NETを使う奴は、使うパーツのコストをまるで考えない奴が多い。 これ使えばどんだけメモリを食うのか、どんだけ処理が重くなるのか考えもしない。
なんか訳のわからないこと言ってる奴がいる気がするけど気のせい? IE使うな、って自前で描画しろっての? 車輪の再発明、って言うんじゃないのそういうの。 っていうかコピーにも対応するって結構面倒そうに思うけど。 つーかIE使うとメモリそんなに消費するのかなw
会社に必ず一人はこういうのがいるよな
↑こんな奴ばかりだから.NETはモッサリで嫌われるんだよ。 コストを考えて使えと言ってるだけなのに。
w
調べてみるとtwintailはIEコンポーネントを使ってないと書いてある。 だがそれにも関わらずメモリ食いまくりで起動が遅い。 .NET frameworkを読み込むこと自体が元凶なんだろうな。 Vista仕様のパソコンじゃないと使う気になれない糞重いソフトしか作れないのは痛いな。
WebClientも使ってないのかねえ? それに限らず.NETFRAMEWORKの中からIE使ってる場合もあるのではないか まあどっちみちメモリ食うのには変わらんがw それとHTMLレンダリング甘く見てる知ったかちゃんが湧いてるようだがw 自分で作ってみるといいよ 間違いなく認識改まるからw まったく最近は日本語処理舐めて掛かる奴が多くて困る
HTMLレンダリングとかそんなオーバーなものは要らない。 2chブラウザが解釈すべきタグは<a href="xxx">と<br>の2つだけだろ。 それをわざわざIEコンポーネントで表示させるほどのもんか? 頭使えよ。
まあその程度の認識だろうとは思ったよ(笑) 実際やってみれば分かるが、.NETの文字列系処理だけで組み上げようとするとかなりのコスト それで得られるものは僅かなメモリとでっかいセキュ穴 あ、あと自己満足かw 物の分かる奴ならどっちを取るかは自明だがね
表示とdatの解釈で話が噛み合ってないな
俺ならIEコンポーネントを選ぶ
497 :
デフォルトの名無しさん :2008/04/21(月) 16:05:38
Linuxで自前レンダリングが通のやり方。 IE使うよりずっと楽。 emacsen使って楽々コーディング+スクリプトで自動化。
>>494 IEコンポ使うとセキュリティーだらけ。
標準に準拠してないしな。
M$を信じたらだめだw
>>498 2chのスレ表示なら、
標準に準拠していないことはそう問題にならないはず。
だって
>>492 が言っているように
最低限aとbrが使えれば十分で、
さすがにIEコンポでもそれくらいは使える。
501 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 17:27:09
perlで2chブラウザ作ったけど 簡単だったなぁ。 まず、板URLゲット 板選択したら、スレッドdatを取って スレッド表示 スレッド選択したら スレッドdat取ってスレ表示 書き込みはpostで。 4時間で作れた。
502 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 17:31:12
503 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 17:33:28
IEコンポが無いと、デザインがね。 それと、Javascript使って、ID一覧表示が出来ない Widestudioで作ったんですが、 IEコンポがperlに対応して無いようで 残念です。
普通に考えてRichEditで十分だな。 IEコンポ使う奴は素人。
505 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 17:43:55
今の時代ブラウザ用途でJavascript使えないとおもちゃのようになるよ。 俺の作った2chブラウザもJavascript使えないから 便利に動かない。 richeditなんて役に立たないよ。 実際に2chブラウザ作ってないから問題点が見えてないんだろうけど。
>>504 Win使ってる時点で素人
プロは全員りなつかてる
>>505 ブラウザ用途って、2ch専用だぞ?
HTMLのフル機能を備える必要がなんである?
javascriptで機能を実装する必要がなんである?
不必要に馬鹿でかいオブジェクトを組み込んでしまった罪滅ぼしに、
javascriptを使おうとしてるだけじゃないか。
509 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 19:20:15
>>507 OLEでGUIデザインは・・・
>>508 そこがね、卓上の空論と言うのかな。。
俺のSSのような2chブラウザならいらないけど
より便利にして行こうとすると、どうしても、必要になってくる。
あの機能が足りない、この機能が欲しいとなってくるんだよね。
>>509 Perlやったことないんだけど、
IEコンポ部分だけWin32::OLEってのも無理?
511 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 19:32:59
>>510 widestudio使ってるから無理だと思います。
TKだとIEコンポ付いてますが共存できません。。
>>509 ×卓上の空論
○机上の空論(「きじょうのくうろん」と読む)
perlなんかやっててWindowsプログラミングの机上の論理すら分かってない奴には用はない。
分かってるならきちんと論理的に反論できるはず。
513 :
サイタマン ◆mYN3wsz7vE :2008/04/21(月) 19:51:22
数時間あれば2chブラウザなんて作れるんだから 実際に作ってから言えと言いたいですね。 そこで問題点が分かると思いますよ。 IDにフォーカス当てるとそのIDの発言が表示されるとか いろんな機能が欲しいと思うはずです。
そんなの自分で描画すればいいじゃん。やってみると結構簡単だよ
515 :
デフォルトの名無しさん :2008/04/23(水) 02:07:56
.NETアプリのexeが、MSILかJITコンパイル済みかを見分ける方法ってありますか? 初回起動が激遅のソフトがあって、それがMSILだから遅いのか、フレームワークを読み込むので遅いのかを 調べたいんですけど。
>>515 ngenのこといってる?
ならngen displayコマンドで調べられる。
HTMLのオートインデント実装しようと思ってるんだけど、XMLのDOMについて質問です XmlNodeクラスにはすべての子供のデータを取得するInnerText,InnerXmlはありますが 直下の子供のTextは取得できないんでしょうか DirectoryInfoのGetFilesとGetDirectoriesみたいに 直下のXmlとTextだけが取得できる方が便利だと思うんですが・・
>>518 Textもノードの種類の一つだから、
子ノードを列挙してNodeTypeがTextのを探せばいい
520 :
518 :2008/05/05(月) 19:21:28
うまくいきました。thx
ViEMUなるVisual Stdio内で動くViエミュレータが動きません。 設定の仕方がまずいんでしょうか。それともVisual Stdio Express じゃそもそも動きませんか? メンバー、フィールド、プロパティ、変数のそれぞれの単語の厳密な使い分けがようわかりません。 ヘルプ読めばなんとなくはわかるんだけど。何か気の利いた分け方ありますか。
Expressではアドインは使えません。諦めましょう。 型の直下に宣言された要素の総称がメンバ(メソッド,プロパティ,フィールド,イベント)
よくある、タブで文書を複数開く系のアプリを作ろうとしています。C#です。 TabPageの派生クラス(仮にMyTabPage)をTabControlにぽこぽこ追加、 みたいなイメージで考えてるんですが、この場合MyTabPage上の コントロールの配置をデザイナで行うことは可能でしょうか。
525 :
524 :2008/05/20(火) 01:39:51
あげときますです
ユーザコントロールを作ってタブページの上に乗せるようにした方がいいと思う
FileStream や IO::File::WriteAllText で 新規ファイルを作成して書き込んだとき、 サイズが0になってしまうことがあるのですが、 どんな理由が考えられるでしょうか? ディスクの空き容量は充分にありますし、 特に例外も出ていません。 元データのサイズもゼロではありません。
closeしてない
横から補足 WriterとStreamの両方でcloseしないとダメ disposeでcloseもされるとかMSDNには書いてあるが信じたらあかん
>>529 MSDNに書いてあるとは信じようよ。System.IO.StreamWriterのCloseの実装。
public override void Close()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}
ただし、GC任せにした場合はDispose(false)になり正常に書き出しされない。
>WriterとStreamの両方でcloseしないとダメ
こちらはMSDNになぜか書いてないので両方Close/Disposeしておいたほうが安全だが、
実装上はwriterの元になったStreamは自動的に閉じられる。
ちなみにClose/Disposeは2度以上呼び出しても例外は起きない。
ふうむ…? 昔、StreamWriterとその元のFileStreamをそれぞれusingで括ってcloseなしにしたら 見事にサイズ0喰らったんだけどな usingってスコープから外れた瞬間にdisposeするよな?
原因は別にあると考えるべきだろう。再現性のある最小限のコードをアップしてみたら。
533 :
527 :2008/05/23(金) 10:52:54
みなさんありがとうございました。 FileStream のほうは Close していない部分があったので Close するようにして様子を見てみます。 WriteAllText のほうは別な原因だと思いますが、 再現性のあるコードをアップするのが難しいので もうちょっと自力で調べてみます。
http://pc11.2ch.net/test/read.cgi/tech/1208791919/ こちらのスレから誘導されてきました。
Windowsアプリケーション学習用にC#をやろうと思っています。
Microsoft Visual C# 2008 Express EditionをSDKとSQL Serverつきでインストールしました。
しかし何をどう作っていったらいいかわかりません。
プログラム経験はPHPでWebプログラム(こちらは趣味で3年以上やっていて2ch風掲示板ぐらいのものは作れます)、
あとオブジェクト指向の勉強にJavaを少しいじった程度です。
Javaでは簡単なファイル操作から、オブジェクトの継承や例外処理など基本的な勉強しかしていません。
Webプログラムはイメージ的にわかるので、ASP.NETあたりはなんとか理解できると思うのですが、
Windowsアプリケーションとなると右も左もわかりません。
まずは何をやったらいいのでしょうか?
とりあえず簡単そうなものとしてメモ帳あたりから作成してみたいと思っています。
また参考になるようなサイトがあれば是非教えてください。
お前は三年間何してたんだ? 分からないことは全部人に聞いてたのか?
何をしたらいいかわからないを判る様にするプログラムを作ったらいいじゃない
537 :
534 :2008/05/23(金) 23:03:21
>>1 見て安心したのですが、煽りしかこないようなので質問閉めます。
どうもお邪魔しました。
マジレスするとそんな抽象的な質問は、 恐ろしく掲示板という場所と相性が悪くて、誰も答えたがらない。 図書館とか書店行け。
>>534 まま。そう気を落とすなよ。
とりあえずフォームにいろいろ貼ってどんなコントロールがあるのか調べてみなさい。
まあ正直なところ 簡単そうなメモ帳 と言ってる時点でWindowsアプリ全般に対する誤解つーか強固な先入観を感じる まずそっから解きほぐすとなると、面と向かわなきゃ無理だ罠
メモ帳って”最低限の機能”が意外と多いきがす
印刷・検索・置換以外なら比較的簡単だと思うんだけどなあ……。
>>542 Windows標準のメモ帳に実装されている機能を「最低限」と言ってるんじゃないの?
多い少ないと簡単かそうでないかは違う尺度
てか「見た目メモ帳」で良ければリッチエディットぺたぺたで終わり しかし、そこからが地獄 どう考えても学習向け題材ではない 2chブラウザの方がまだマシ
リッチはいらんだろ
VC++で、ビルドをするとpdbファイルや、ilkファイル、objファイルが生成されるのですが、 これらのようなファイル(exeファイル以外の勝手に生成されるファイル)は配布時には入れなくてもいいのでしょうか?
Tab 押したら隣のコントロールに移動してしまいました>< で詰まってみるとかどうよ
>>547 Debug ビルド → それらのファイルが出来る、配布不可
Release ビルド → それらのファイルが出来ない、配布可
>>549 リリースビルドでもいっぱいでてくるのですが……。
どこかで設定しないといけないのでしょうか?
見るとこ間違ってないか? デフォルトならDebugとReleaseでフォルダ違うぞ
でもまあリリースでもobjやpdbはできるだろうな。 実際の配布にはexeだけあれば十分(あと必要に応じてランタイムの用意)。
みなさんありがとうございます。
VC#の設定を全部インポートしたから変になったのかな……。
再インストールしてみます。
>>552 objとかpdb生成しないようにはできないのでしょうか?
わざわざ手動でするのですか?
再インストールしましたが、 やはり生成されるようです。 こんなものなのですね……。
まずはobjファイルが何者であるかググレ そしたら何故出来るか理解出来るだろ
文字列(テキストファイル)をLoadメソッドでXMLDocumentにするような感じで 文字列をHTMLDocument?のような構造化されたオブジェクトに変換する何かってありますか?
日本語でおk で済ませたい所だが一応エスパーってみるとだ 拡張子が.htmlではないけど中身がHTMLなテキストなファイルをHTMLDocumentに読ませたいと あんまアタマいいやり方じゃないが、WebClientにローカルパス指定して読ませるとかどだろう
>>557 分かりづらくてすみません
XMLDocumentだとタグの1つ1つにプロパティのようにアクセスできるじゃないですか
そんな感じでHTMLのテキストを読み込んでそういう感じのオブジェクトに変換してくれる何かがないかなと・・・
うわ・・・すみません、HTMLDocumentっていうそのものずばりがあったんですねorz お騒がせしました
560 :
デフォルトの名無しさん :2008/05/26(月) 23:02:07
.NET Frameworkというのが何なのかググってもわかりません。 易しい言葉で詳しく説明していただけませんか?
クラスライブラリとランタイム
562 :
デフォルトの名無しさん :2008/05/27(火) 11:53:26
世に出ているデスクトップアクセサリ/マスコットってどういう仕組みで動いているんでしょうか。 いろいろとググってみましたが、よくわかりませんでした。 フォームを透過し、画像を貼り付け?何かヒントをくださると助かります。。
大丈夫。仕組みがわかったとしても君には作れないから。
564 :
デフォルトの名無しさん :2008/05/27(火) 12:05:14
>>563 そんなことおっしゃらず、おねがいいたします。
565 :
デフォルトの名無しさん :2008/05/27(火) 13:46:21
>>563 自分で作るとか作らないとかは関係ありません。
仕組みを聞いているだけです。
enumってどう発音すんの?
適当に発音すればいい
エネマって読むんだお
浣腸かよ
javaのhsqlDBみたいに、フリーで手軽に使えるデータベースは.netにはないのですか?
mdbファイル access無くても使えるし
>>572 あーあれ直接扱えるんですね。なるほどありがとうございます。
と思ったけど、うちの自宅マシンにaccess入ってないのでデバッグやデータ作るのめんどくさそう・・
ほかになんかないですかね?
とりあえずXMLがラクそう?ですかね。
>>573 そういう用途で実質業界標準なSQLiteでいいんじゃね?
対応環境もめちゃ多いし。
SQL Serverでもいいぜ、サービスがいやならCompactとか。
msdnのDatagridviewの説明読んでも全然わかんない
まあなんだ 取り敢えずDBテーブルからフォームにポトペタしてみ?
>>577 表示したいのはDBのレコードじゃなくて自作クラスの配列なんだ
DataSourceに突っ込んだら表示されたけど
何も考えずDataSourceに突っ込んだら一行にこんな感じに表示されるけど
┌─┬─┬─┬─┬─┐
│あ│い.│う.│え.│お│
└─┴─┴─┴─┴─┘
それを下のように一行の中に縦に二つのセルを並べたりはできないの?
┌─┬─┬─┐
│ │い│う │
│あ├─┼─┤
│ │え│お.│
└─┴─┴─┘
>>578 DataSourceの形がそんなだから、表示もそんな形になる
DataSourceの形を工夫すれば、できなくはない
DataGridViewの上では2レコードだけど、
コーディング上ではそれを1レコードとみなす、ってことね
VB2008についての質問です。 My Projectの設定で作った変数の値は、user.configに保存されますが これだと、ビルドしたexeを別のフォルダに移した場合、それまでにユーザーが入力した値がリセットされてしまいます。 それで、ユーザー用の設定ファイルを常にexeと同じフォルダに生成し、常に読み込み・保存でそちらを利用したいのですが これを実現させるにはどのようにすればいいのでしょうか?
それはVistaでややこしい事になるからしない方がいい M$的にはDocuments and Settings内がユーザー個別だから使えと言うこと
うーん、そうなんですか、ありがとうございます 仕方ないので、任意のタイミングでデータを読み書きするボタンを置いておいて、 自分でインポート・エクスポートしてもらう事にします
583 :
デフォルトの名無しさん :2008/06/08(日) 00:50:04
質問です。SQL server 2005 と VB.NET2005を使用して簡単なソフトを作っています。 実用的なものではなく、VBとSQLの練習みたいな感じです。 SQLから値を取得しようとコードを書いていたのですが、 SqlExceptionはハンドルされませんでした。 ユーザー '' はログインできませんでした。 このユーザーは SQL Server の信頼関係接続と関連付けられていません というエラーがでました。 認証がWindows認証だったので、SQL Server認証にしようしても接続することができません。 このような場合どうすれば良いでしょうか?
>>583 app.configの接続文字列ってわかるかな?
わかればそれを晒してみよう。
585 :
デフォルトの名無しさん :2008/06/08(日) 08:03:43
583です!返答ありがとうございます。 app.configの接続文字列とはどこで見たらよいのでしょうか? ソリューションエクスプローラーにapp.configはでてきているんですが、 プロパティに接続文字列がでてきません・・・・。 初歩的な質問からですみません。
586 :
デフォルトの名無しさん :2008/06/08(日) 12:44:31
DBに繋ぐためにapp.configの中の接続文字列を見て DBと通信してる。とりあえず、app.configの中にDataSourceとかServerとかあると 思うし、それを確認すべき。"(local)"とか書いてると思う。 SQLServerのエディションはなに?
つかDBエクスプローラから一遍ポトペタしとけばその辺自動で作ってくれると思ったが それで出来たDataGridが要らなければ消せばいい
588 :
デフォルトの名無しさん :2008/06/08(日) 22:02:58
説明不足ですみませんでした。 SQL Server Management Studio Expressを使用しています。 app.configの接続文字列についてですが、 connectionString="Data Source=ユーザー名;Initial Catalog=shuwa;Integrated Security=True" となっています。
ユーザー名を「(local)」にしてみたら?
590 :
デフォルトの名無しさん :2008/06/08(日) 23:22:59
(local)にしてみましたが、同様のエラーメッセージがでてしまいました・・・。 今、VBに書いているプログラムです。 Imports System.Data.SqlClient '接続クラスの作成 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Cn As New SqlConnection("server=(local);Data Source=ユーザー名;Initial Catalog=shuwa;") Dim SQLCm As SqlCommand = Cn.CreateCommand SQLCm.CommandText = "SELECT かな FROM shuwa WHERE 指文字 = 001 " Dim Value As String Cn.Open() Value = SQLCm.ExecuteScalar Cn.Close() MsgBox(Value) End Sub End Class
まず、001って'001' シングルクオーテーションで囲まないと
Valueはstringで大丈夫か? DBNullの可能性はないのか
593 :
デフォルトの名無しさん :2008/06/09(月) 00:19:00
SQLCm.CommandText = " SELECT かな FROM shuwa WHERE 指文字 = '001' " という事でしょうか?エラーは相変わらずです。。 さらに、また疑問がありまして・・・自動生成されるプログラムについてもいまいち理解しきず、今まで、コメント扱い にして作業していたのです。ヘルプや関連サイトを見てはいるんですが、これは必要なんでしょうか? 1 Private Sub Shuwa_Table_1BindingNavigatorSaveItem_Click・・・ 2 Private Sub Form1_Load・・・・でTODO: このコード行はデータを 'ShuwaDataSet._shuwa_Table_1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 コメントを外すとビルドエラーで1でHANDLES句には、それを含む型または基本型の1つの定義されたWithEvents変数が必要です。 とでています。
594 :
デフォルトの名無しさん :2008/06/09(月) 00:32:54
もう、そのままコードうpしちゃいなよ〜
っ [教えてgoo] もう来んな。
596 :
デフォルトの名無しさん :2008/06/09(月) 00:58:01
うまく伝えられずすみません。以下がコードになります。 Imports System.Data.SqlClient '接続クラスの作成 Public Class Form1 '自動生成されるプログラム() Private Sub Shuwa_Table_1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Shuwa_Table_1BindingNavigatorSaveItem.Click Me.Validate() Me.Shuwa_Table_1BindingSource.EndEdit() Me.Shuwa_Table_1TableAdapter.Update(Me.ShuwaDataSet._shuwa_Table_1) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: このコード行はデータを 'ShuwaDataSet._shuwa_Table_1' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.Shuwa_Table_1TableAdapter.Fill(Me.ShuwaDataSet._shuwa_Table_1) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Cn As New SqlConnection("server=(local);Data Source=ユーザ名;Initial Catalog=shuwa;") Dim SQLCm As SqlCommand = Cn.CreateCommand SQLCm.CommandText = " SELECT かな FROM shuwa WHERE 指文字 = '001' " Dim Value As String Cn.Open() Value = SQLCm.ExecuteScalar Cn.Close() MsgBox(Value) End Sub End Class
597 :
デフォルトの名無しさん :2008/06/09(月) 01:00:19
598 :
デフォルトの名無しさん :2008/06/09(月) 01:02:47
連続すみません。 592さん!StringをSqlDataReaderに変えたところ、ログインエラーはでなくなりました! ありがとうございます!!
エラーメッセージちゃんと読んでたのか?
600 :
デフォルトの名無しさん :2008/06/09(月) 16:13:12
質問させて下さい。 C#にて、.NET Framework 2.0にServis Packが適応済みであるかを調べたいのですが 上手くいきません。 開発環境は Visual Studio 2005 開発環境OS Windows XP Pro SP3 インストール済みの.NET Framework ・2.0 ・2.0 lang ・2.0 SP1 ・2.0 SP1 lang System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() にてバージョンの取得を試みたところ、SP1がインストールされている環境下でも取得されるバージョンは「2.0.50727(SP無し)」 教えてエロい人!
バージョンの下にビルド番号があるみたい 2.0.50727.832 2.0.50727.1433 エライ人じゃないから、これ以上はわからん
ループを使用する場合、変数の宣言はループの外側ですべきですか、 それとも内側でしょうか。 Dim s as String For i as Integer = 0 to 10 s = Cstr( i ) & "回目" Console.writeline(s) Next か、 For i as Integer = 0 to 10 Dim s as String = Cstr( i ) & "回目" Console.writeline(s) Next ということです。前者の方が領域の使い回しにはなりそうですが、 どこかでGCの為には毎回宣言すべきというのも見た気がして…
Objectdatasource の insert メソッドをコードから呼んだ時は identity の値って取得出来るの? insertメソッドってint型しか返さないし select メソッドを直後に呼んだら正しい値が返って来るとは限らないような。
>>602 前者でも文字列本体の領域が使いまわされるということは全くないから、
安心しろ。どっちも同じようなもんだ。
というわけで、変数の有効範囲が小さい後者がよしとなる。
607 :
デフォルトの名無しさん :2008/06/10(火) 12:22:38
>>601 ありがとう!エロすぎるよ!!!!1111
608 :
デフォルトの名無しさん :2008/06/10(火) 12:27:20
>>601 ありがとう!エロすぎるよ!!!!1111
Thread の扱いについて。 Thread t = new Thread(new ThreadStart(worker)); t.Start(); void worker() { : } などとしてスレッドをスタートさせ、worker が終了するとスレッドも消滅するそうですが、 インスタンス t はどうなるんでしょうか。t はまだ有効で、t.Start() でまたスレッドをスタート させることができるのでしょうか。 毎回インスタンス作り直してもガベージコレクタが回収してくれるんでしょうけど、 ちょっとこの辺が気にかかってます。
まず試してみればいいじゃない
>>602 領域云々では全く差はない。
よってスコープを広げるメリットはない。
>>609 インスタンスは残ってるけど再起動はできない。
よってほっとくのが吉。
613 :
609 :2008/06/10(火) 15:09:56
>>610 そのつもりではいるんですが、今は手が回らないんで、先行して質問してみました。
また、再スタートできたとして、それでよいのか単なる偶然かも気になるところなんですよね。
…て書いてると回答が。
>>612 ありがとうございます。では再起動させる時は作り直すようにします。
どうも Win32 でやってた頃の癖が染みついてて、作ったインスタンス
後始末しないと気持ち悪かったりするんですよね。
一つのFormにTabControlを用い、複数のページをタブで切り替えられるようにしています。 各タブにはスピンボタンがいくつかあり、そこに入力された値はpropertybindingで記録しています。 なのですが、起動時に一番初めに表示されるタブのページに、全タブのスピンボタンの値の合算を 表示するようにしているのですが、これが起動時は正しく合算後の値が表示されているのですが 一度でも初期表示のページのスピンボタンを操作すると、合算の値が起動後に一度でも開いたタブのみの 合算値になってしまいます。 ちょっと分かりづらい説明だと思いますが、要は各タブに貼り付けられたスピンボタンのvalueの値が、 一度でもそのタブを開かないとMy.Settingsから書き戻されないようなのです。 どうも、起動した瞬間はvalueに関連づけたMy,Settingsの値が入っているようなのですが 起動→操作可能になるまでの間にvalueの値が0になっているようなのです。(My.Settingsには値が保持されている) 0にするような操作は一切行っていないのですが、propertybindingの値を読み込み保持させるには、どうすればいいのでしょうか? もう5時間くらいずっと悩んでいるのですが、何をしても全く解決できません。
タブコントロールって最初の奴以外は、選択されない限りインスタンスが作られないんでなかったか 回避策としては、タブの親玉のPreInit?だかで一旦非表示にして、全タブを前面に持ってくる もっとスマートなやり方あるかもだが
616 :
614 :2008/06/12(木) 03:30:42
>>615 ちょっと不格好だとは思いますが、Form1_Loadの中で
Me.TabControl1.SelectedTab = TabPage2
Me.TabControl1.SelectedTab = TabPage3
という風に一度全てのタブに切り替えるようにすると、初めから値が入った状態で操作できるようになりました。
ありがとうございました。
visualbasic2008ですが、初期状態でPictureBoxに画像Aを表示させておいて、
クリックすると画像Bに数秒だけ切り替えて音声ファイルを再生し、また画像Aに戻るプログラムを作りたいのですが
Dim strm As System.IO.Stream = My.Resources.se01
Dim player As New System.Media.SoundPlayer(strm)
PictureBox1.Image = My.Resources.B
player.Play()
PictureBox1.Image = My.Resources.A
という風に記述すると上手く画像が切り替えできません。
player.Play()の後にsleepを入れてみましたが、どうも画像を切り替える前に音再生の所で処理が止まっているようです。
要は、
ttp://saionji.net/hozon.htm のフラッシュのような事がしたいのですが、画像を上手く切り替え、かつマウスの連打にも対応させるにはどうすればいいのでしょうか?
考え方を切り替えて,ゲームみたいに自分でループ回してフレーム単位でやった方が簡単だよ もしくはWPF使う
DirectX場合、GDI関数のようにGUIスレッドからしか操作できないという制限はあるの? 別に出来るなら自分でループまわすのが一番自然なんだけどな。
webサイトを作ろうとやっているわけなんですが、 アップの後に確認してみたところ、どうしても Parser Error Message: Could not load the assembly 'App_Web_default.aspx.cdcab7d2'. Make sure that it is compiled before accessing the page. と出てきてしまい <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_default.aspx.cdcab7d2" %> が悪いと出てくるわけなんですが、どうすればいいのか理解ができない状況です・・・ もし、ここが悪いんじゃね?っていうのがあれば教えていただければ幸いです。
ム板にもASP.NETスレはあるから行ってこいよ。 どうせマルチなら何ヶ所しても同じだろ。
C++のマネージ配列を強制的に開放することはできないのでしょうか?
参照をはずしてあとは祈れ
解放を制御したかったらアンマネージドでやれ
625 :
デフォルトの名無しさん :2008/07/10(木) 03:15:04
C++とかで直接書くのではなく、.NETをつかう利点てなに?
マイクロソフトは.NETにユーザー押し込めて囲いたいだけだろな それに乗るか乗らないかだよね
C++は文法が難しすぎて
C++と.NETの2者選択ってのじゃなくて済み分けてるけどね。 .NETは生産性が高く、実行コストが高い。 C++は生産性が低く、実行コストが低い。 十分テストが出来て広く多数に使ってもらう用途にはC++。 WEBや企業内システムのような用途には.NETが向いてる。
629 :
デフォルトの名無しさん :2008/07/12(土) 01:08:58
array<Byte>の全体にmemset相当のことをしたいんだけど、どうすればいいの? ループで回して1つずつセットした → かっこ悪い pin_ptrしてmemsetした → 納得いかん ForEachした → 大げさ過ぎる
>>629 かっこ悪いと一緒なんだが
static class Util {
public static T [] setAll<T>(this T [] ar, T val) {
for (int i=0; i<ar.Length; i++) ar[i] = val; return ar;
}
}
double [] ar = new double[10].setAll(123.45);
631 :
629 :2008/07/12(土) 15:36:08
やっぱし、そういう手しかないのね。 0にしたい時だけはClearでいいようだけど。 初期状態を0xffにする時とかがねぇ。
632 :
デフォルトの名無しさん :2008/07/12(土) 18:04:01
System.IO.BinaryReaderで開いたファイルをシークさせるにはどうすればいいのだろう。 素直に考えるとhoge.BaseStream.Seek()なんだろうけど、msdnヘルプ見たら 注意:読み取り中または BinaryReader の使用中に基になるストリームを 使用すると、データの損失や破損の原因になることがあります。 たとえば、同じバイトが 2 回以上読み取られたり、バイトが読み 飛ばされたり、文字の読み取りが予期しない結果になることがあります。 って書いてあるからちょっと不安。
>>631 C++でも構造体の初期化にはmemset使うなって流れになってるけど、
配列はどうなんだろ。スレ違ですまそ。
>>632 シークが必要になったら、BinaryReaderは破棄して、元になったストリームをシークする。
んで、そのストリームから別のBinaryReaderを作って完了。
FileStream fs( "hogehoge", FileMode::Open);
BinaryReader br1( %fs);
// ここでbr1から好きなだけ読む
fs.Seek( 0, SeekOrigin::Begin); // 先頭にシーク
BinaryReader br2( %fs);
// ここでbr2から飽きるまで読む
NetworkStreamのようにSeekできないのはどうすればいい?
メモリなりファイルなり一度どこかに蓄える
>>633 C++はプログラマの責任においてできることの範囲が広いわけで、
パフォーマンスや保守性など、各種要因を天秤に掛けて決めるべきかと。
C++/CLIは.NETの制限の中にあるんで、基本的にはmemsetは御法度なんだけど、
せめてArrayにFillメソッドがあってもいいような気もする。
>>633 ネイティブC++でも構造体の初期化にmemset非推奨ってーのは、
多分アライメントの関係で下手をすると尻切れになりかねないからだと思われ
例えば合計6バイトの構造体だと、実際のサイズは8バイトになると思うが
この構造体を配列にして初期化しようとすると、sizeofの実装によってはズレが生じかねない
ましてや.NETだと間に何が挟まってるか知れたもんじゃない
スレチだからこの辺で
「思われ」みたいなヲタク口調の奴って気持ち悪いな。 なんだよ「思われ」って。 想い想われかw
と、何にでも噛み付く狂犬がキャンキャン吠えてます
641 :
デフォルトの名無しさん :2008/07/14(月) 13:28:50
C言語の"%5d"に相当するToStringのフォーマット指定はなんて書くざますか? "%05d"相当にしかならんのですが。
.PadLeft(5) つなぐとか
ググったらわかりました。 ToStringじゃできないのでString.Formatを使うらしい。 つか、MSDN分かりにくすぎだろ。
>MSDN分かりにくすぎだろ。
そういう感想の人もいるんだな。
いや別に煽ってる訳じゃなないし、たぶん俺が麻痺しちゃってるんだと思うけど
すくなくとも書式指定に関してはそういう不満は覚えなかったな。
だいたい
>>641 みたいな需要って(DOSの時代ならともかく)いまどきあまり
ない気がするよ。
WriteLineやStringFormatで使える書式 位置 ( , 桁数 ) : フォーマット ToStringで使えるのはファーマットの部分だけ 漢字等の幅広文字も1文字で数えるから総桁数はあんまり使わないよね。
ToString().PadLeft(5) は無視か。
他に手がないならともかく、さすがにそれはなぁ。
すいません質問です。 StringのReplaceを大文字小文字を無視してすべて置換する方法はありませんかね?
ない
ないな…あってもいいと思ったんだが。 手抜くなら、Regex.Replace関連で代用かな…
651 :
デフォルトの名無しさん :2008/07/22(火) 23:34:14
セットアップウィザードを使ってインストーラーを作成しています。 ReadMe.txtのショートカットをプログラムメニューに配置したいのですが、アイコン関係がよく判りません。 手順としては、 アプリケーションフォルダにReadMe.txtを追加する。 ReadMe.txtのショートカットを作成する。 このショートカットをユーザーのプログラムメニューに配置する。 (プロパティはいじっていません。) 実際にインストールしてみると、問題なくReadMe.txtは表示されるのですが、アイコンが、%APPDATA%\Microsoft\Installer \xxx.exeにあるアイコンが表示されます。 他のプログラムメニューに登録されているReadMeのように、txtファイルに関連付けられたアプリケーションの アイコンが表示させたいのですが、どこをいじればよろしいでしょうか? よろしくお願いします。
652 :
デフォルトの名無しさん :2008/07/23(水) 15:10:07
Microsoft.Office.Tools.ExcelとMicrosoft.Office.Interop.Excelの違いがよくわかりません。 それを知りたいのと、 単純にCUIでExcelファイル(.xls)を読み込んでバイナリデータにコンバートしたい場合、 どちらを使えばいいのでしょうか?
Visual Basic 2008 Express Editionをインストールして 新しくプロジェクトを作成してみると、以前までコードが自動生成されていたのが 生成されなくなってしまいました。 ex) Public Class Form1 End Class のような感じでしか出力されていない状態です。 何か設定を弄らないといけないのでしょうか?
>>653 今頃それに気づくということは以前というのはVS2002とか2003なのか?
プロジェクトのすべてのファイルを表示でForm1.Designer.vbが表示されるからそこにいろいろ入ってる。
Sub Newを書かないときにInitializeComponent()を誰が呼んでるのだという問題だったらまた話が違う。
>>654 以前に使用していたのは2005です。
問題の解決ができまして
原因は私の勘違いでボタンオブジェクト作成⇒自動挿入と思っていました。
ボタンオブジェクトでダブルクリックしないといけなかったという…
お答えくださりありがとうございました。
質問です。 フォルダAppの中にBase.dllとModA.dllが存在しています。 このフォルダのdllはすべてVB.NET(1.1)で書かれており、 Base.dllの中には継承フォームの親クラスなど、 ModA.dllの中にはBase.dllを利用(参照)して作った実際の画面クラスなどがあります。 Base.dllは頻繁に更新されており、 ModA.dllの参照に設定されているバージョン番号よりもかなり新しい状態です。 現状、この内部だけの動作なら問題なく動いています。 現在、新しいWindowsアプリを作成中で、 C#で作ったアプリからModA.dll内の画面クラスを System.Reflectionを使用して動的に呼び出したいのですが、 Base.dllを継承したフォームを呼び出そうとした瞬間に 「Base.dllが見つかりません。」というExceptionを投げられてしまいます。 ・Base.dllとModA.dllは必ず同じAppフォルダに入っている ・Appフォルダそのものの位置は移動可能 ・新アプリでは、Appフォルダの位置をユーザーに指定させる ・新アプリの位置も移動できる方が望ましい。 という条件で、上記のExceptionが出ないようにすることは可能でしょうか? 助言をお願い致します。
>>656 いろいろ書いてる割には見事にポイントをはずして要領を得ないね。
とりあえず言えることは、「出来るはず、やり方が悪い」
658 :
656 :2008/08/09(土) 20:31:55
それは657にエスパーであれっていってるのと同義だと思うけど
C#が1.1なのか他のバージョンなのか。 リフェレクションはAssembly.LoadFromを使っているのかそれとも別の方法か? リフェレクションで読み込んで呼び出している部分のソースをさらす。 VBで同じ手法のリフレクションを使って実現できているのか。 「Base.dllが見つかりません。」じゃなくてスタックトレースを出せ。 E伊東さんとお知り合いか? とりあえず、このくらいは書いとけよ。
リフェレクションえろいな
>>656 無理。
依存してるライブラリが更新されたらコンパイルしなおす必要がある。
さもなくば、動的にクラスを構成しないといかん。
厳密名を使ってるなら話は別だがPublicKeyToken=nullのときはVersionのチェックはない。
LoadFromが原因だろう。 厳密名とかの話じゃない。 LoadFromで読んだ場合、自動的に同じフォルダのBase.dllを 読んだりはしてくれない。 AssemblyResolveなどで自分でハンドリングして読み込むか、 事前にBase.dllもLoadFromで読んでおくことはできる。 でも、アプリのフォルダを自由に指定とかなってくると、 たぶんどっかでトラぶってにっちもさっちも行かなくなると思うぞ…
[ヒント] プログラミングに王道なし。 いやまじめな話、そのレベルから掲示板で解説しろってそりゃ無理あるぞ。
667 :
656 :2008/08/11(月) 22:59:52
>>660 C#は1.1です。
try
{
Assembly a;
a = Assembly.LoadFile("C:\App\ModA.dll");
foreach(Type type in a.GetTypes())
{
if(type == typeof(インターフェース))
{
return true;
}
}
}
catch(Exception e)
{
MessageBox.Show("エラー発生");
}
ソースはこんな感じです。スタックトレースってのはよく分かりません。
ごめんなさい。
>>664 Base.dllを先に読み込めばいいんですね。
明日試してみます。
ってしかもLoadFileじゃねーかよ
>a = Assembly.LoadFile("C:\App\ModA.dll"); もしかして〜 a = Assembly.LoadFile(@"C:\App\ModA.dll"); とか a = Assembly.LoadFile("C:\\App\\ModA.dll"); で直ったりして
まさかね まあBase〜っていってるから違うと思うけど。 しかしなー、LoadFromやLoadFile系はトラブるんだよなー できればフォルダを自由に指定ってのはやめた方が無難だけどなー
LoadFileはいろいろ制限が多いし、 LoadFromは署名がないと相対パスしかダメなんだっけ。 やっぱ構成ファイルを書きまくるとか。
MSDNから >LoadFile は、LoadFrom メソッドとは異なり、ファイルを LoadFrom コンテキスト内には読み込みません。 >また、読み込みパスを使用して依存関係を解決することもできません。 ModA.dllのあるディレクトリから依存のあるBase.dllを探してくれない
673 :
656 :2008/08/12(火) 00:41:21
>>669 書き込みミスです。@付きになってます。すみません。
LoadFromにすれば直るのでしょうか?
>>664 の先に読み込むというのが気になるので、
それをまず試してみようと思います。
どちらにしても今すぐ確認はできませんので、
確認し次第再度書き込みます。
いろいろ助言をありがとうございます。
C#でアプリ作ってるのですが、.NET Framework入ってない環境で起動した場合、 強制終了になる前に任意のメッセージ出して終了するにはどうすればよいでしょうか?
環境を調べるネイティブアプリ作って、入って無ければエラー出して終了、 入っていればC#アプリを起動するとか。
>>676 そのつもりでDOSスタブみたいな形で埋め込めればいいなぁと
あれこれ模索してたりしてたんですが、やっぱ分けるしかないでしょうか。
>>677 先頭のほうにmscoree.dll::_CorExeMainを呼ぶjmp命令があるから、
その飛び先を変えてやればいいと思う。
ちなみに、XP以降のWindowsローダーはマネージドアセンブリを読み込んだ場合、
このネイティブなスタブコードを実行せずに、_CorExeMainから直接実行し始める。
679 :
678 :2008/08/12(火) 15:15:17
何が言いたいのかよく分からない文章になってたけど、 要するにXP,Vistaあたりでは必要なバージョンのランタイムがないときに、 実行前に任意のメッセージを出すことはできない言うことです。 スタブコードを書き換えるのはやったことがないけど、そこに感染するウイルスがいくつかあるんで、 もしかしたらアンチウィルスソフトウェアに文句言われる可能性はあるかもしれないですね。
680 :
656 :2008/08/13(水) 00:01:05
LoadFromを使用して、先にBase.dllを読み込んでおけば 無事動くようになりました。 新たな問題はいくつか出てくるようになりましたが、 今のところ少しずつ解決していけてるので大丈夫だと思います。 丁寧な回答ありがとうございました。
681 :
DD :2008/08/20(水) 13:29:19
ASP.NET2.0のGridViewで質問があります。使用言語はC#です。 1つの画面に以下のコントロールがあります。 ・TextBox (TextBox1) ・Button (Button1) ・GridView (GridView1) ・SqlDataSource (SqlDataSource1) TextBox1に検索する主キーの値を入れ、Button1をクリックすると、 その主キーの行の背景色を変更する、といったことをやりたいと思っています。 GridView1のSelectedRowStyleのBackColorに適当な色を指定して DataBoundイベントでGridView1.DataKeys[i].Valueをループで検索。 見つかったらGridView1.SelectedIndex = iとすることで ほぼやりたいことは実現できています。 この状態でGridView1のAllowPagingをTrueに設定し、 Button1クリック時に、検索してヒットした行のあるページに 自動的に切り替えるにはどのようにすればよいのでしょうか? 現状のコードでは、現在のGridView1のページしか検索出来ないためうまく出来ません。 どなたかご教授願えないでしょうか?
>>681 PageIndexで表示したいページを設定できる
VC++2005EEとForm(.NET2.0)で作ったアプリを配布したいのですが どのような配布形式が一般的でしょうか? VS.net2003bootstrapper plug-inのようなものがあれば使いたいです。
686 :
DD :2008/08/25(月) 18:12:57
>>682 PageIndexで表示したいページを設定できることは分かっております。
問題なのは、DataBoundイベントでGridView1.DataKeys[i].Valueをループで検索した場合、
現在のPageIndex内のデータしか検索できないのです。
やりたいのは、全てのページを検索し、ヒットしたらそのページを表示することです。
DataBoundイベントではなく、何か別のイベントで検索する必要が
あるのではないかと思うのですが、
そのイベントが何なのかが分かりません。
どのようにしたら良いのでしょうか?
GridViewではなく、DataSource自体をぐるぐる回って調べていくとか。 泥臭いかw
688 :
DD :2008/08/27(水) 13:39:15
>>687 例えばDataSource自体をぐるぐる回って調べるとしたら、
どのイベントを捕まえればよいんでしょう?
実はそれをやろうとしてみたんですが、どのイベントで処理すればよいのか
分からなくて・・・。
一端DataViewに取って、後はそれ使えば? 常識的に考えて並びは一緒だから、現在のページ×1ページあたりの行数+indexで行けるハズ
>>687 泥臭いも何もそれが正しいやり方だと思うんだが。
>>688 イベントって、Button1のクリック以外に何があるん?
GridViewのDataSourceにセットしたものがDataTableオブジェクトだった場合、
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowIndex = -1 Then Return
If e.Row.Cells(1).Text.Contains(Me.TextBox1.Text) Then
' 検索ワードが入っている行の背景を緑に
e.Row.BackColor = Drawing.Color.LightGreen
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim rIndex As Integer
Dim tbl As DataTable = CType(Me.GridView1.DataSource, DataTable)
For rIndex = 0 To tbl.Rows.Count - 1
If tbl.Rows(rIndex)(1).ToString().Contains(Me.TextBox1.Text) Then
' 検索ワードが見つかったらループから抜ける
Exit For
End If
Next
' ページインデックスを算出
Dim pIndex As Integer = rIndex \ Me.GridView1.PageSize
' GridViewに算出したページインデックスをセット
Me.GridView1.PageIndex = pIndex
' 適応実行
Me.DataBind()
End Sub
691 :
DD :2008/08/28(木) 18:27:18
>>689 一端DataViewに取る、その方法が分からないんです(T_T)
そこのところ、ご教授願えないでしょうか。
>>690 Dim tbl As DataTable = CType(Me.GridView1.DataSource, DataTable)
とありますが、当方C#なもので、よく意味が分かりません(^^ゞ
C#で書くと
DataTable tbl = (DataTable)GridView1.DataSource;
なのかな、と思って試してみましたが、GridView1.DataSourceがNULLでうまくいきませんでした。
692 :
DD :2008/08/28(木) 18:42:28
>>689 >>690 おかげさまで解決いたしました!
以下のコードでDataTableに取り出すことが出来ました。
DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty);
DataTable table = dv.Table;
丁寧な解説、どうもありがとうございました。
C#で作ったプログラムからExcelを操作するプログラムを作りたいのですが、 Excelを操作する方法についてインターネットで調べてみると どうやらExcelのバージョンによって参照設定するCOMってやつのバージョンが違うみたいです。 今作ってるプログラムをそのまま実家にメールで送って使ってもらう予定なのですが、 COMのバージョンが違うと正しく動かない可能性もあるのでしょうか? 使う予定の機能はExcelを読み込んで決まった位置に値を書き込むぐらいなんですが、 不具合を起こしにくいコツなどがあれば教えてください。
> 不具合を起こしにくいコツ .NETでOfficeのCOMを利用しないというのが一番の対策じゃないかw xlsファイルなどを直接操作できるライブラリを使うのがお勧め
>>694 すみません、できれば.NETを使用することを前提にお願いします。
COMって、自分で作ったdllみたいにReflectionで動的に探してきたりはできないんでしょうか?
それはできる。 でもメンバアクセスまで全部リフレクションでやる羽目になる。 悪いことは言わないからせめてVB.NETにしとけ。
>>696 ありがとうございます。
とりあえずGoogleってた結果、
Type.GetTypeFromProgID()というのを見つけたので実装はできそうです。
VBを1から勉強するかは後で考えるとして、
COMを動的参照するときって、普通はどういうクラスのどういうメソッドで参照先dllを探すのですか?
今までは自分で作ったdllを動的参照することしかしたことがなかった上、
インターフェースは静的に参照してそれを実装したクラスをReflectionで見に行く
ってことしかしたことがないので、COMの一般的な探し方を教えてくれませんか?
名前はともかくとして、COMのdllがある場所ってどうやって調べるんですか?
>>697 レジストリ(HKCR)を探せば見つかるが、プログラミング目的では普通やらない。
みんなProgIDとかClsIDとかで識別するから。
それに、DLLなら直接読み込んでオブジェクトを作ることも可能だが、
EXEに実装されているとどの道COMのAPIを介さないといけない。
>Type.GetTypeFromProgID() を使うんだからおかしなことを考える必要はない。 問題は、インターフェイスを参照できないから、 メソッド呼び出しとかまですべてリフレクションでやらなきゃならないこと。
700 :
DD :2008/09/02(火) 11:03:35
>>697 とりあえず、VC#2005なら、ソリューションエクスプローラーの参照設定右クリックから
参照の追加。
COMタブを選択して、Microsoft Excel XX.X Object Library を選択して
OKボタンクリック。
これで一応使える。
COMオブジェクトは最後に必ず開放。こんな感じでどうでしょう。
/// <summary>
/// COM オブジェクトの参照カウントを解放する
/// </summary>
/// <param name="comobj">COMオブジェクト</param>
private void ReleaseComObject(Object comobj)
{
// COMオブジェクトだったら
if (comobj != null && System.Runtime.InteropServices.Marshal.IsComObject(comobj))
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(comobj);
}
catch { }
finally
{
comobj = null;
}
}
}
702 :
DD :2008/09/02(火) 13:11:52
>>701 あ、その通りですね(^^ゞ
以前Excelを扱った時はSpreadsheetGearを使ったので
COMを使った操作は良く分からないです。。。
サードパーティのライブラリを使用したくないとのことですので
これは使えませんね。
お役に立てずm(__)m
> comobj = null 意味ないじゃんw
704 :
DD :2008/09/02(火) 15:26:49
>>703 ですね(^^ゞ
はった後私もそう思いました。
>>701 バイナリになってしまえば問題ないんだよ。
「複数バージョンのExcelに対応できない」のはあくまで開発環境のみ。
一部バージョンが違うと例外が発生するメソッドがあったりするけど、
そこだけ個別に対応すれば問題ない。
706 :
697 :2008/09/02(火) 21:11:51
いろいろなご解答ありがとうございます。 今回は複雑なエクセル操作をするわけではないので、 すべてリフレクションでやるクラスを作って、それを使いまわそうと思います。 ありがとうございました。
VBでクラスライブラリ作った方が簡単だと思うけどな。
VBAではセルの文字列の色をCellsのCharactersで調べられるのですが .NETではどうればいいのでしょうか? msdnにはRangeにCharactersがあるのですが 書いてみると定義がありませんと エラーがでます。 using Excel = Microsoft.Office.Interop.Excel; var xls = new Excel.Application(); var book = xls.Workbooks.Open(略 var rng = (Excel.Range)book.sheet.Cells[1, 1]; こんな感じでRangeクラスを取得してます。 ちなみにVS2008SP1を使っています。
710 :
DD :2008/09/08(月) 10:36:38
>>709 rng.Font.Color
で取得できるのでは?
711 :
709 :2008/09/08(月) 19:52:53
>>710 すいません、質問の内容を微妙に間違えてました。
取得したいのは文字列のn番目の文字の色なんです。
Characters(4, 1).Font.ColorIndex
と書くとVBAでは4文字目の色の取得や設定が
出来るんです。
それだと多分セルに設定された文字列の色になるんですかね?
net導入するときはVB6を残したままでもいいですか?
713 :
DD :2008/09/09(火) 11:55:55
現在Visual Studio 2005 C#で以下のようなことを実現したいと考えております。 DropDownList(値にはIDが入っている)で選択した項目に一致するレコードをGridViewに表示する。 DropDownListにはALLという項目があり、これを選択すると すべてのレコードを表示する。 このようなことをやりたいのですが、どうやったらいいのか分かりません。 現状ではALLを静的に追加しており、その値は0となっています。 また、GridViewのデータソースにSqlDataSourceを割り当て、 SqlDataSourceのSelectParameter(ID)にDropDownListの SelectedValueを設定し、ALL以外の項目を選択した場合は 正常に動作しています。 どなたかご教授ください。
714 :
DD :2008/09/09(火) 12:06:29
.NET2005環境を利用しています。 Private Sub ShowMsgBox(ByVal PromptText As String, Optional ByVal Type As Integer = 0, _ Optional ByVal Title As String = "") に対して、配列CmdArgsの1番目(0番目ではない)〜3番目の要素を 引数として渡したいのですが、2番目・3番目の要素は省略される可能性があります。 呼び出しについて例としてPerlで書くと、「$ShowMsgBox(CmdArgs[1..$#CmdArgs]);」のように 不定要素数の配列をインデックス1から最後まで指定して投げることが出来ますが、 VBではどのような形で呼び出せばいいでしょうか。 要素数を判別して、条件毎に呼びだし方を変更するしかないでしょうか。
>>715 ShowMsgBox(ParamArray args as Object())でも多重定義しとくとか。
まあどのみちその中で要素数を調べてToStringして別のシグネチャのShowMsgBoxを
呼び出すコードを書くわけで、同じといえば同じかもしれないけど。
っていうか趣味の問題かもしれんがOptionalは使わない方がいいんじゃないか?
717 :
715 :2008/09/10(水) 00:20:30
>>716 なるほど、即レスありがとうございます。
要素数判定で呼び出し方を返る、という形で書いてみましたが
かなり冗長な呼び出し方になってしまい、本末転倒な感じがしてきました。
If CmdArgs.Length > 3 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2), CmdArgs(3))
ElseIf CmdArgs.Length > 2 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2))
Else '←必ず0、1番目の要素は定義されている
ShowMsgBox(CmdArgs(1))
End If
ShowMsgBox側で配列としてまとめて受け取ってから、
処理した方が良さそうですね・・・。
>Optionalは使わない方がいいんじゃないか?
C感覚で勉強中だったので、多重定義が可能なことを忘れていました。
もう少し勉強してみます(`・ω・´)
Math.Pow
>>719 は累乗と累乗根の違いすら分かってないから参考にしないように。
ニヤニヤ
Math.Pow(
>>720 , 1.0/12.0);
724 :
718 :2008/09/10(水) 12:12:07
>>719 ,722
ありがとうございます!
以下のようにしたら十二平均律の周波数を算出できました。
Dim i As Integer, fr(12) As Double
For i = 0 To 12
fr(i) = Math.Pow(Math.Pow(2, i), 1.0 / 12.0)
Next
725 :
722 :2008/09/10(水) 12:35:12
>>724 素直に
Math.Pow( 2.0 , i / 12.0)
と書くべし
ワロタ
素直なのは
>>724 なんじゃない?
整理したら
>>725 だけどさ
x _
√a = a^(1/x)
であるから、
x __
√a^b = (a^b)^(1/x)
となり、十二平均律では、x = 12, a = 2, b = (1から12)となるので、
12 __
√2^b = (2^b)^(1/12)
bをiとして、
2^i = Math.Pow(2,i)
これにより、
Math.Pow(Math.Pow(2, i), 1.0 / 12.0)
意味が分からずに言われたとおりに簡略化して書いてる奴って職場だとホント困るんだよな・・・。
中学数学でしょ
730 :
722 :2008/09/10(水) 13:09:00
主観入ってたわ。
頭の中で
x __
√a^b = a^(b/x)
になってた。
というわけで、
>>725 を訂正して、
Math.Pow()を2回呼ぶより、整理して1回にしたほうが良いと思う。
分かりにくかったら無視してくれ。
Math.Powは見るからに処理長そうだしねえ 慣れるまでは理解するまでベタ書きが無難だが 慣れたら呼び出す回数を減らすことを勧めたい
問題にはならないだろうけど、一応精度の問題もある
404 Not Found
>>727 発想が逆立ちしてるよw
数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
12音階というのは2(1オクターブ)を対数軸上で12等分したもの、
というのが全ての出発点で12乗根√2っていうのはそこから導出した値に過ぎないんだよ。
対数軸(y = log(x))上の等差数列はxの世界では等比数列になる、って考えてもいいけど
普通は直感的に基準となる音からn番目の音の周波数は2の(n/12)乗倍だってわかるだろ。
すみませんが、質問です。 Googleなどの検索エンジンで .NET の情報を効率よく集めるには、どのような 検索語にすればよいでしょうか? ただ入力すると、.netというドメイン名にばかりヒットしてしまいます。
>>736 >数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
検索エンジンの使い方までサポートする幅広いスレだな せめてVBで検索しろ
>>739 ありがとうございます。C#で検索することにしました。
.NETは別にC#だけではないのですが、関係ないページばかり見つかるよりマシです。
いやVisualStudioだろ
VisualStudio は .NET だけじゃないんじゃ?
だから.NETと組み合わせるんじゃ? でもVisualStudioじゃ取りこぼし多そうだがなあ
うん、組み合わせのつもりで言ったぞ VisualStudio .NET 2005 +言語名なら確実だろう
マイクロソフトは一般名詞を商標にして いつの間にか自社製品を示す言葉にするのが得意だからな。
そうだね。あれは本当に迷惑。 昔の話だけど .doc という拡張子は元々テキストファイルのものだったのに、 勝手に MS Word のものにされた。 Word という名前といい、いまだに腹が立つ。
それはそれとして、ノイズが混じらなくて、取りこぼしをなるべく少なくする には、どんな検索語がいいかな。 VisualStudioは、ちょと取りこぼし多そう。
そろそろスレチじゃね .NET資料の探し方とは言え、googleの検索仕様に左右される話題だし
正規表現を使うって発想がないWindowsの天下で わざわざ正規表現を実装する検索サイトはないよな あったら凄まじく便利なんだが
有るわけがない。 文化の問題ではない。
ここで正規表現が使える奴が居るかも怪しい
.NETにも正規表現クラスあるけどちょっと使い方がまどろっこしい
正規表現は一種のツールだからな。 プログラミングサイドで実装されてても、 OS側が環境として提供してくれないと・・・
>>746 外国だとテキストファイルに.docはマイナーだったって聞いている。
わざわざかぶること前提で.docに決めたわけなかろう。
少なくとも.NETはトップレベルドメイン.netとかぶること前提だけどな
しかし readme.doc は国内外を問わず添付されてた気が
拡張子の制約で使い勝手を縛るのはWindowsとhttpのMIMEtypeだけだよ。
知ったようなことを言う
反論すら成立してない
そういやマックのファイルっていまだにマックバイナリ付いてるの?
761 :
デフォルトの名無しさん :2008/09/13(土) 09:07:27
ビジュアルベーシック.NETでOSは作れますか???
>>760 マックバイナリが何なのか理解してないね
>>763 意味が分からない。
どうせ絡むならはぐらかしたような言い方せずに全部言えよ。
「何なのか理解していない」のが君の方でなければなw
調べればいいだろ 「いまだに」とかつける勘違い名人には教えません
>>765 一般的事実なら調べれば分かるかもしれないが、
馬鹿なお前さんの独善的「思い込み」の意味をどう調べろって言うのかね。
本当、最近こういうセカイ系的メンタルの奴が多くて困る。
というか、何も具体的なこと言えないから最初から人に絡むなよ。
768 :
デフォルトの名無しさん :2008/09/14(日) 23:24:20
C++スレで自分では答えられないザコから誘導されてきました VC++ 2005 Express 自分のアプリから、別のアプリが起動してるかどうか見たい 207 名前:デフォルトの名無しさん[] 投稿日:2008/09/14(日) 20:48:40 iniファイルは釣りでした。 起動してるプロセス(リスト)の取得教えて 210 名前:デフォルトの名無しさん[sage] 投稿日:2008/09/14(日) 21:59:34 くだすれ.NET逝け
うん。見れば
>C++スレで やっぱりC++/CLIとC++の区別が付いてなかったのか、VIPに逝け
771 :
デフォルトの名無しさん :2008/09/15(月) 19:45:31
質問です。 WINDOWS XP使用で、コンパイラはBorlandC++compiler5.5です。 インストールしたあとパスの設定で、 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\GTK\2.0 とあったところに\bin;c:\Borland\Bcc55\binと付けました。 なのに、実際コマンドラインでメモ帳を開こうと>C:\WINDWS\NOTEPAD.EXEと打ち込んでも、 指定されたパスは見付かりませんとでます。(NOTEPAD.EXEはCディスクの中のWINDWSに入れてあります。) 他にもカレントディレクトリを変えようとして、>cd ○○と打っても、 確かにあるはずなのに指定された(ryになってしまいます。 誰か助け手ください(涙)
772 :
771 :2008/09/15(月) 20:08:40
スレ違いのようでしたので、他に聞いて見ます。 すみませんでした。
773 :
デフォルトの名無しさん :2008/09/16(火) 22:58:28
質問ですお願いします。 C#でUDP通信するソフト作ってるんですが、 通信時の暗号化に3DES使おうとプラグロミングして reflectorで覗いたらキー丸見えで萎えました。 クラックを防げる暗号化ってどう実装したらよいでしょうか 制限事項としては (制限1)クライアントで暗号化したものをサーバで複合できる(逆も然り) (制限2)上記制限1のため、暗号化キーは固定する必要あり? 3DESのキーをまた暗号化してしまうとか、 キー生成アルゴリズムを埋め込んで、キー自体を持たないとか 外部にキーを持たせてdll参照するとか色々考えたんですが 結局トレースされたらばれてしまうのでティンときませんでした。 道かよろしくお願いします。
3DESじゃなきゃだめなの? 公開鍵じゃだめなの?
公開鍵も考えたんですが、ようは、誰かが作った偽クライアントがサーバに接続されるのを防ぎたかったので 鍵自体バレると・・・と思ったけど 今よく考えたらreflectorでソース見れる時点で暗号化どうのこうののまえに偽クライアントは作れてしまいますね。。。 .netで作るのをやめる事にします。 どうもありがとうございました。
これは酷い思考停止
ネイティブで作ったって一緒。 まあ解析しにくいことは否定しないが。 本当に安全にやるなら、SSLとかでやってるのと同じような仕組みを作らにゃならん。
778 :
773 :2008/09/16(火) 23:59:23
すみません775は私です。 私は生産者側なのでクラックにはあまり興味ないですが、.NETの形態上ソースが見えてしまうのは仕方がないんですよね。 今まで、いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。 生産対象物がきわめて専門的なBtoBのようなソフトであれば、ソースをほしがるような客先は少ないです。 逆に、保守のことを考え、わざわざソースをセットで渡してしまうこともありますが、 たとえばネットゲームのような、完全なBtoCまたはCtoCの形を取るソフトであれば、不特定多数のクライアントがいるわけで そのなかには必ず中身を解析したり、場合によっては不正な手順でサーバにアクセスする人たちが出てきます。 そういった人たちのモチベーションに反比例するのが解析の難しさ、めんどうさだと思います。 もちろん従来のネイティブコードでクラックできないわけではないですが、.NETよりはめんどうです。 そうした意味では、.NETという、言ってしまえば実行ファイルのソースが公開されているプラットフォームを避けるのも一つの手かなと思いました。 長くなりましたが、つまり、知りたいことは、 1).NETでClient/Server作ってる人は、どういう実装をされてるんでしょうか。 2)そもそも.NETは使わないんでしょうか。 度々すみませんがもう少し知恵をお貸しください。
だから本当に確実な認証が必要なら、パスワードか証明書かICカードかUSB鍵か、 とにかくソースを解析しても不可能な方法をとるわけだよ。 >いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。 それってどんな認証だよっていうか認証って言わないだろそんなの。
ん? ひょっとして接続が許可された人間でも偽クライアント(というかその許可情報)を使用した接続とか できないようにしたいって言ってる? そんなことは基本的には不可能だよ。 たとえばソース解析するまでもなくそのクライアントアプリをコピーして別のマシンで動かした場合はどうなるんさ? ※パスワードやらその他認証用の情報も基本的に同じようなもの
781 :
773 :2008/09/17(水) 00:12:45
>>779 すみません話を混ぜて書いてしまいました。
>いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。
これは、キーさえわかっていれば他の部分コピペして新たに偽クライアント作ったらサーバ側からは偽クライアントだとはわからないという意味です。
パスワードか証明書かICカードかUSB鍵がいらない偽クライアントが出来てしまえばサーバ側では対処できないだろうという意味で書きました。
ネットゲームのBOTツールとかがそれにあたるんでしょうか。
782 :
773 :2008/09/17(水) 00:15:19
>>780 そうです!それが言いたかったんです。
クライアントアプリの複製は問題ないです。
クライアントアプリを騙って不正なパラメータでアクセスをされるのを防ぎたいんです。
不可能。 だってクライアントが正しいかをサーバ確認できるのは通信内容によってのみだから。 基本的にクライアントプログラムが本物かを「確実に」確認する方法はない。
784 :
773 :2008/09/17(水) 00:42:33
だとすると、暗号化の議論の中では邪道とされている、処理の隠蔽しか暫定的な回避策は無いですね。 .NETには不可能ですが。 逃げにしかなりませんが、Client側はネイティブな別の言語に移植する事にします。 また、暗号化のクラック対策としては、定期的にClient/Serverともアップデートをかけて、 実行前にキーを変更する仕組みにしようと思います。 勉強になりました。 ありがとうございました。
つーか難読化とか耐タンパとかでググれって誰も言わないのは何でなんだぜ?
786 :
773 :2008/09/17(水) 01:03:15
>>785 そんなのがあったのですね。勉強不足でした。
早速フリーの難読化ソフトで実験してみたら、実行は出来るのにコンパイルが通らないソースが出来上がり感動しました。
さすがに定数は難読化されなかったですが。
ソフトの種類によっていろいろなのかな。
ちょっと色々調べてみます。ありがとうございました。
本格的には使いにくいからじゃね?
javaseで掲示板へ投稿するスクリプト作れますか? ポストリクエストを少々いじるのはjavaeeになるのでしょうか? よろしくお願いいたします
ここ数件の 書き込みに 対して スレタイ 欲嫁 と 言ってやりたい
Form2が閉じた時にForm1を更新するにはForm.Closedイベントを使えばいいのはわかるんだけど、 Form1から、Form2が”閉じてる”て状態を捉えるにはどうすればいいのですか? Form2.Enabled = Falseじゃ駄目みたいなんだけど VB.NETです
Visible
IsDisposed
どういう動作を意図してるかわからんけど 閉じてるかどうか判断して閉じてたら開きなおすならこんな漢字化 Public Class Form1 Dim f2 As Form2 = Nothing ''' <summary> ''' Form2をShowする ''' </summary> ''' Private Sub ShowForm2() 'Form2をはじめて開く場合 If f2 Is Nothing Then f2 = New Form2 Else 'Form2が閉じてた場合 If f2.IsDisposed Then f2 = New Form2 End If End If f2.Show(Me) f2.Activate() End Sub End Class
>>790 Application.OpenFormsで現在開いている(表示されている)フォームのコレクションが取得できる。
こんなかに、Form2が入っているかどうか見ればいいかと思われる。
790です 色々ありがとうございました 勉強になりました 意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。
>>795 それだと状態を常に監視する為にコールバックしないといけないような
というかそもそもその動作ならForm2が開いているかどうかは関係ないよ
button1が押されたときに
button1.Enabled=False
Form2が閉じるときに
DirectCast(Me.Owner, Form1).Button1.Enabled = True
797 :
796 :2008/09/17(水) 23:44:17
途中で送信してしまった
スマソ
Form2を開くボタン(仮にbutton1)のスコープをForm2から参照可能にしておいて
>>795 みたいなかんじでやれば、Form2の状態など監視せずにスマートにいけるんじゃね
798 :
797 :2008/09/17(水) 23:45:59
>>795 そういうのはForm1の適当なメソッドにForm2の適当なイベント(例えばFormClosed)を
紐付けするんだよ。
VBならForm2の参照をWithEventsで持つ方法でもいい。
というか、くだすれか何か知らんけど、
こんなレベルの話は入門書を一冊軽く斜め読みすれば分かることで
掲示板で人に聞くような内容じゃない。
799 まぁまぁ「くだすれ」なんだから ごもっともだけども。
>>794 のやつが一番スマートだと思われるが。
Form2のNameプロパティに"Form2"と設定してあれば
If Application.OpenForms("Form2") Is Nothing Then
MessageBox.Show("Form2は閉じてる")
Else
MessageBox.Show("Form2は開いてる")
End If
と判断できるし
>>801 ?
ずっとチェックするの?
>意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。
僕はその意見には反対ですが、
まぁ、一番スマートなやり方はどうかは別にして、やり方はいくつもあるってことだね
初心者はいろいろやってみて、一長一短あるのを自分なりにとらえるようになるのも勉強だ
>意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。 であれば、 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f2 As New Form2() f2.Show() Button1.Enabled = False AddHandler f2.Disposed, AddressOf Me.Form2_Disposed End Sub Private Sub Form2_Disposed(ByVal sender As Object, ByVal e As EventArgs) RemoveHandler CType(sender, Form2).Disposed, AddressOf Form2_Disposed Button1.Enabled = True End Sub
Disposedで良かったっけ? Showなら良かったんだっけかな。
クラスにこういうプロパティを実装しています。 ------------------------------ Private mHOGE As String Public Sub New() Me.HOGE = "" End Sub Public Property HOGE() As String Get Return HOGE ←※ End Get Set(ByVal value As String) mHOGE = value End Set End Property ------------------------------ ※のところで、 「変数 'HOGE' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。」 という警告が出るのですが、これは書き方がどこか間違っているのでしょうか。
それ以前に無限ループになるのは確実だわな。
これは俺もたまにやっちまう。 セッターの方だといきなりスタックオーバーフローでめげるぜ。
いやセッターとも限らんか。 ともかく実行したらアウチ
すみません。 Return mHOGEですよね。 よくよく読んだら理解できましたorz
XP3 .NET C#のSDKのURLください
811 :
デフォルトの名無しさん :2008/09/18(木) 17:38:58
kaiketusita
812 :
デフォルトの名無しさん :2008/09/18(木) 21:36:31
質問です。 パスワードを設定したExcelのファイル(オープン時にパスワードを求められる)があるのですが これをC#からパスワードを自動入力で開く方法ってありませんか? 普通にダブルクリックしたときはパスワード入力、 C#で作ったプログラムで開くボタンをクリックすれば パスワード入力なしでエクセルを起動するってしたいんです。 詳しいかた宜しくお願い致します。
.NET1.1はSDKを含め、全てアンインストールしてもいいのでしょうか? マイクロソフトは.NET1.1をどのような位置付けで考えているのでしょうか
Change系のイベント連鎖についてですが 避けたくてもどうしてもTextBox1のChangeイベントでTextBox1.Textに 値を代入しなくてはならない、なんて場面はよくあると思いますが、 みなさんどうやって連鎖を回避されていますか? フォームレベルのフラグ変数とか、 他コントロールのフォーカス使ったりとか、 わざわざ条件を自作するような技しかないんでしょうか。
>>814 >なんて場面はよくあると思いますが
いやそうそうないと思う。
というより、そんなことを思った時は大抵ロジックが不適切なんだと思う。
少なくとも処理内容と目的を具体的に書かないと納得できないよ。
>>815 不適切なロジックでもやらないといけない場面はよくある
書く人の志向だけで作れるような、そんな恵まれた職場や
案件ばかりじゃないよ、実際
まあそうだけど、でもそうとも限らん。 何も言ってないのにそういう事情を考慮する義理もない。
>>818 おすきにどうぞ。
何が動かなくなっても知りません。
>>813 普通に普通のランタイムと同じじゃないの?
それを使っているアプリがあれば、そのアプリが動かなくなるだけ。
よく分からんな、使ってないなら要らんし使ってるなら要るだろう。 別にランタイムだけなら残しといてもたいしたことないと思うが。
ここの住人がそれを使ってるアプリが今後も量産されていくという展開をお読みになる、または1.1しかありえない2.0以降で.NET?はぁ?ということならば消さないでおきます つまり2.0以降より必要度が低いのであれば消します HDDが40GBしかないもんで
そりゃ必要度は低いだろ。 だがわざわざ消すほどの容量でもないんでは? ってだけだ。
.NET1.1必須のやつはそう多くないし、消してもいいんじゃないかね。 必要になったらまた入れればいいさ
そう言ってくださるならば消します マイクロソフトは1.1を黒歴史的に捉えてると思わざるをえないので
黒歴史は1.0であって、1.1は現役
そりゃ、どんなソフトメーカーでも同じで、 旧バージョンは出来るだけ使って欲しくないよな。
よく分からんが、仮に黒歴史と捉えてたとしてだからどうってもんでもないだろ。 開発者の立場ならそりゃ分かるが。
動作必須環境に 「.NET1.1」と書かれているのと「.NET2.0以上」と書かれていた場合、 どちらがより多くの支持を集めますか?
フリーソフト作者? フリーソフトのユーザー限定ならドトネト製というだけで却下という人が多いんじゃないか。 よくも悪くも.NETはパッケージ以外の業務用ソフト以外ではあまり普及してないのが現実だろう。 というか、他人に背中押して欲しい優柔不断な奴かなんかしらんが、 そんなこと自分の頭で考えたらどうよ。
1%でもよ多くの支持を集められそうな方はどちらですか? というか、超初心者ですので曖昧な回答は必要ありませんし、 自分の頭よりは、あなたたちの意見の方が正確性が高いと判断しております
なるほど、君は例えば「朝まで生テレビ」のような番組(まあ下らない番組だけど) を見て「いつも結論がでない」とか的外れな批判をするそういうタイプの馬鹿なんだね。
いいえ、人物考察等はスレ違いですし、必要がありません。 自重していただければこれ幸いと存じます
Ver違いでなんか支持変わんねえよ 糸冬了 はい次の方〜
私も質問です .NET1.1のランタイムは削除して良いのですか?
こんなの釣り人に決まってるだろ
.NET 1.1必須といえばVS2003やTurbo Delphiといった開発ツールくらいかなぁ。 大概の1.1用のアプリは.NET2.0上でも動く。
RinGOchは動かない
VB2008のExpressでプログラムの勉強を始めたばかりの者です バックグラウンドでキーボード入力を監視するソフトを作りたいんですけど、入力文字を盗み見するところで悩んでいます どういった方法が一般的でしょうか
また水前寺清子か・・・
いっぽんどっこの唄を思い出した
若い子じゃわからないネタだし、わかる年代だとチートがわからんだろ
両方のチーターが分かる年代でもキーローガーとチートが頭の中で 概念的に結びついてる奴はいないと思うわ。。
キーローガー作んなよボケが
キーロガーつくるワケではないです 入力されたキーによって音を鳴らそうってだけなんです
年貢とは納めるもの
それワンツーワンツー
まあキーボード フックでググれ .NETでもできるみたいだぞ
ありがとうございます
853 :
デフォルトの名無しさん :2008/09/28(日) 09:11:22
.netで作ってる自分のプログラムからWordやExcelをモーダルで開くことってできますか?
お前のプログラムのことなんて知らんがな
855 :
デフォルトの名無しさん :2008/10/02(木) 12:06:51
ツリーコントロールにコンテキストメニューを設定しているのですが、 ノードを右クリックすると、一瞬そのノードが選択されたあと、すぐに 直前のノードにフォーカスが戻った状態でコンテキストメニューが開いてしまいます。 右クリックしたノードが選択した状態でコンテキストメニューが開くようにするには どうすればいいでしょうか?
>>855 マウスダウン時にクリックしたノードを選択ノードに設定するとか
Dim hti As TreeViewHitTestInfo = Me.TreeView1.HitTest(e.Location)
If hti.Node IsNot Nothing Then Me.TreeView1.SelectedNode = hti.Node
2008をインストールしていたのですが Web Developerの方は完了後に出たリンク先からLive IDに入り登録キーをとれました VC++,VBの方は閉じてしまって登録キーを得られるページがわからなくなってしまいました 登録キーを得られるページの入り方(アドレス)を教えてください
MSサポセンに電話
書き忘れました Express Edition です
じゃあ俺がサポセンで聞くから番号載ってるアドレスよこせ
番号? DLインストールしたものなんですが Webから取得できないんですか なぜDeveloperだけできたんだろう?
メール受信したか?
はい、Developerのやつだけ
ああ、登録のところからできそうです お手数かけました
さいきん遊びで.net(C++)はじめたんですが、 javaプログラマが.netやるにあたりこれをみとけば 導入しやすいというサイト等ないでしょうか? null判定やら整数判定やら、その他もろもろ一々 調べないといけないので効率わるいです。。。
ああC++/CLIか 先にC#やったほうが入りやすいんじゃね
・・・なんで C++/CLI。その言語、C++ と CLI 両方に精通していないと 難しいから両方初心者なら基本お断りだぞ。いや、というかむしろ そうでないと使う意味がない方が正確かも。 既存コード等があってそれとの相互運用したいとか、ちょっと細かく 最適化したいとかそんなときに使うもの。
すごく限定された一部の特殊な目的のために部分的に使う言語であって常用するもんじゃない
ネイティブのラッパー書くときは楽だよな
でもあくまでラッパーまでなんだよね それがMS推奨のスタイルみたいだし
872 :
865 :2008/10/04(土) 00:25:35
なるほど。 なんで選んだかというと、 C++の勉強がてら、あとはとりあえず.netも みておくかと思ったからです。 あと.netあるのでいろいろ用意されていそうで 楽かな〜とも思いました。
.NETやるならまずC#かVB.NET C++/CLIだけやっても意味がないよ
874 :
865 :2008/10/04(土) 00:45:21
VC++コンパイラ(C++/CLI言語)はその中でも特殊で、 部分的に非.NETの(x86とかの)ネイティブな機械語を含むプログラム(混合アセンブリ)を出力でき、 そうでなくとも非.NETなプログラムとの親和性が大変良くて、 というかそもそも従来のC++の構文はそのままに.NET用の構文がまるまる追加されているだけで、 そのせいで非.NETと.NETを両方使おうとするとデータの変換が面倒だという具合。
世界一の/clr:safe使いに俺はなる!
アンマネージコードを混ぜないならC++/CLIをわざわざ使うメリットがないんだよね 自由度がほんの少し高いだけで、できることはC#と変わらない 文法が複雑でC#やVBより低レベルで面倒、VSのサポートも貧弱、情報少ない C++ができる人でも学習コストは決して低くない(C#に移行した方が早いかも)
んじゃWINDOWSでC++やるなら黙ってMFCか WIN32API直接たたいてろってことですかね?
ATL/WTL 忘れてる
そもそもなんでC++なんだ
VC++6.0ってもうゴミなの?
使えるか使えないかなら使えるからごみというのはどうかだけど 不自由するか不自由しないかなら確実に超不自由する さすがに 10 年前のソフトなので
MSDNが死んでます;;
Oracleへの接続をoo4oからODP.NETに変更したいのだが、 oo4oとODP.NETの差分をうまく吸収してくれるクラスって どこかに公開されてないですか? oo4oを使用していたときのロジックをできるだけそのままにしたい。
以下のコードを実行するとStackOverflowExceptionが発生します。 array<String^>^fileEntries = Directory::GetFiles((String^)Directory::GetCurrentDirectory()); 何がいけないのか、コールスタックを見ようにも見方が分からず・・・
>>885 例外が起きている場所がそこでない可能性もあるな。
デバッグビルドになってないとか、設定で最適化がONになってるとか。
C#を勉強しましたのでVisualC#2008でアプリケーションを作ろうと思っています TableLayoutPanelでEXCELの枠固定みたいなことって出来るのでしょうか 作りたいアプリのカラムが結構な数になるので カラム2と3の間を固定できるようなプロパティがあれば教えていただけないでしょうか TableLayoutPanel以外のクラスでも出来るのであればそれも教えていただけないでしょうか よろしくお願いいたします
888 :
デフォルトの名無しさん :2008/10/12(日) 21:15:02
'Microsoft Visual Basic.NET 2003 の初心者ですが、質問させてください。 Imports System Imports System.IO Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim sr As StreamReader = New StreamReader("テスト.txt") Dim line As String Dim str01 As String Dim str02 As String Dim str03 As String Do ' テスト.txt内の1行を読み込んだ後、それぞれ変数の中に入れたいのです凹 line = sr.ReadLine() ' 結果 'str01 = "a" 'str02 = "123456" 'str03 = "テスト00 "(256バイト固定) ' どういった方法があるのでしょうか?? Loop Until line Is Nothing sr.Close() End Sub End Class '******************************** 'テスト.txt内容 '******************************** a,123456,テスト00(名前256バイト) b,654321,テスト01名前 c,112233,テスト02 '******************************** ちゃんとした質問になっているのかさえわかりませんが、どなたかご指南よろしくお願いします。
何を聞きたいのかぐらいまとめたほうがいいと思うが
890 :
デフォルトの名無しさん :2008/10/12(日) 22:15:04
<<889 そですね汗 失礼しました。 文字列 "a,123456,テスト名" カンマで区切られた文字列をそれぞれ変数の中に入れたいのですが、どういうやり方があるのでしょうか? **結果** Dim str01 As String = "a" Dim str02 As String = "123456" Dim str03 As String = "テスト名" ******** ・・・あまりまとまってなぃかな凹 改めてご指南よろしくお願いします。m(_ _)m
そういうのはCSVという 文字列と数字の扱いとか、エスケープするのかとかあるけど、 簡易的にはString.Splitとか使える
892 :
デフォルトの名無しさん :2008/10/13(月) 14:18:15
VC#2008 Professional Edition SP1,( .NET Framework 3.5 SP1)をWindows XP SP3上で使用しています。 Windows FormsでMDIアプリを作成しているのですが、MDIの親にImageListを置いている場合 MDIの親に置かれているImageListはMDI子フォームから参照するにはどうしたらよいでしょう? ただし、コード上で必要なときに呼び出して参照することは既にできています。しかし、問題はデザイン画面上で プロパティに出したいということです。 プロパティ画面上で ImageList : fMDIForm.ImageList1 みたく・・・ 以前Delphiを使用していたときはuses節に参照したいクラスを記述して、デザイン画面上でプロパティから参照できました。 Web上の様々な情報や書籍を参照しても、MDIフォームに関する情報はあまりなく、困っています。 A) 解決する方法はある B) デザイン上ではあきらめて必要なときにコードで記述するしかない。 C) ImageListなどどの画面でも共通で使用したいものは、あきらめてそれぞれの画面に置く D) その他 のいずれかでしょうか。ご存じの方よろしくお願いします。
D) ソースを晒せ
2005以降でImageListって積極的な使い道というか、 それを使わないとできない事なんてあったっけ? 俺の認識では完全にObsolete扱いなんだけど。。
AbsoluteにObsolete扱いですかそうですか
プロジェクトのリソースじゃダメなの?
TabControlを上部に表示させ、 その下にGridDataViewを表示させています。 ウィンドウのサイズを小さくしたときに、 TabControlの位置と、DataGridViewの位置を変更させないようにして、 かつ、TabControlのサイズは変更させずに、 DataGridViewは上部分(TabControlの直下)は固定で、 ウィンドウを小さくした分だけ小さくさせるようにしたいんですが、なかなかうまくいきません。 あ、DockNoneでうまくいきました。てへ
なかなか思ったとおりにならないときは、間にコンテナかますのがいい。
スレッドについての質問です。 たとえば、TreeView.Nodes などのコレクションや、それに格納されているデータにアクセスする際も Invoke を使用する必要があるんでしょうか。排他だけですむならかなり楽なんですけど。
WCFでBasic認証付きのプロキシを超えるにはどう設定すればいいか、 ご存知の方はいらっしゃいませんか?
プロジェクトとソリューションの違いを教えてください。 いろんなクラスをまとめているのがプロジェクト、と思っています。 そのプロジェクトをさらに上位から管理するのがソリューション? 両者の概念について分かりやすく書いてあるWebなどはないでしょうか? (○確認○行のサイトと@ITのサイトは見ましたが、よく分かりません・・)
902 :
デフォルトの名無しさん :2008/10/27(月) 20:53:31
みなさんはデータを新規に書き込むとき、 TableAdapter.Updateで行いますか? それともExecuteNonQueryで行いますか?
>>901 一つのライブラリとか実行ファイルとかまとまった単位がプロジェクト。
何か解決したい課題があったときに、一つの実行ファイル・ライブラリじゃおさまらない時に
複数のプロジェクトまとめるのがソリューション。
>>901 俺も完全に把握してるわけじゃないけど、
とりあえず1プロジェクトが1アセンブリに対応すると考えればいいんじゃないの?
そんで、プロジェクトはソルーション内の別のプロジェクト(つまりアセンブリ)を
「プロジェクト参照」できる。
だからよく使うライブラリ的なクラスとかユーザーコントロールなんかを
別のプロジェクトに切り分けておけば、他のアプリの時に流用が楽にできる。
これだけ聞くとコンパイル済みのクラスライブラリ(dll)でもよさそうだけど、
一旦dllにするとアプリにあわせて微妙にカスタマイズとかできないからね。
グループで作る時にプロジェクトごとに担当決めて管理者はこれをソリューションとしてネットワーク上でだな
906 :
901 :2008/10/28(火) 20:53:41
>>903 ,
>>904 ありがとうございます。
今はまだなんとなくですが、今後会社で注意深くみてみると
両者の差は使い方で分かってくるような気がしてきました。
>>906 まあドクターパソコン(なんて知らんか…)じゃないけど
頭で考えるより実際やってみればすぐわかるよ。
VB2005で組んだWindowsアプリケーションを、 そのままASP.NET、WEBアプリケーションにすることはできないでしょうか。
すごく無理 とにかく無理 無理無理無理よカタツムリ
910 :
デフォルトの名無しさん :2008/11/24(月) 14:03:02
いいえ プログラミングはロックです
そしてプログラマはロックマンですね分かります
ヲタ野郎どもの笑いのポイントは理解不能だ。 何が面白いの?意味わからん。 とにかく気色悪いんだよヲタは。
同族嫌悪ですね、わかります。
なにか.netを必要としてる他のアプリケーションを起動してみて 普通に動作するかで.net frameworkが正常にインストールされてるか判別できるだろ その先はスレ違いだ 余所で聞け
スレどころか板違い。ここは *プログラム* 板だから、使うだけの人が来る所ではない 追い返すだけではなんだから、幾つかアドバイスを - .NETフレームワークがインストールされているかちゃんとした方法で確認する - .インストール時にエラーが出たなら、エラーメッセージ全文を一字一句違わずコピペorメモる この先は(疑問があったとしても)適切なスレを探してそちらへ
Vistaで、Google Chromeのタブ周りのようにウィンドウの枠の透明部分を広くするにはどうすれば良いでしょうか。 環境はVista、 VisualBasic2008です
921 :
919 :2008/12/14(日) 12:41:34
Visual Basic 2008 Express Editionで.NET Framework 2.0用のプログラムを作っています。 標準のヘルプであるMSDN Express ライブラリ 2008では一部の命令が抜け落ちていて見れません。 そこでこのヘルプの代わりに.NET Framework 2.0 SDKをVB側から(F1による適応ヘルプを)呼び出せるよう設定する事は出来ないでしょうか。 両方入れると容量を食うので困っています。
完全なMSDNは無料でダウンロードできるよ 2.0SDKのMSDNはアンインストールしてそっち入れるといいよ
完全版MSDN > MSDN Express + 2.0 SDK
もしくはフィルタなしにする 立ち上げるたんびにいちいち再設定するのが禿しくめんどくさいがタダだからやむを得ん
猫が分からなくて 誘導されてきた コンパイラインストよくわからない 誰か……
コンパイラインスト?
Visual C# 2008 Express Edition入れればすぐ開発できるけど、どこで詰まってるんだ?
どこからの誘導かと思ったが、スレ立てるまでもない質問スレからか
このスレは過疎ってるから、C#(.NET)の初歩的な質問は"ふらっとC#"に行った方が良いと思うぞ
あと、分からない事があった場合、可能な限り状況を詳しく説明して質問すると回答が貰えやすい
ふらっとC#,C♯,C#(初心者用) Part35
http://pc11.2ch.net/test/read.cgi/tech/1229519838/
ごめんわかんねえ Cなのだが 付録ROM入れたはずが さっぱり分からない bcc32とかいうショートカットができたけれど HelloWorldで始める事が できないのです 猫ある人いないでしょうか…
ここは.NET関連だからスレ違い
ああ インストロールのことね
ngenって、どう使うの? 一回やればずっと有効なの?
C++のDLLをC#で使うためにC++/CLIのラッパーを書いています。 DLL関数の中に InterfaceObject* Func(); のようなクラスのインターフェイスを返す関数が定義されてて インターフェイスのポインタをプロパティに持つインターフェイスのラッパークラスを定義しました virtual bool Get (DWORD &rNextLine) = 0; の抽象メソッドに対応するメソッドとして bool Get(UInt32 %rNextLine); を定義し DWORD value; bool result; result = プロパティ->Get(value); rNextLine = (UInt32)value; return result; のように書いてビルドが通るようになったのですが。 もっとスマートにできないかなと悩んでいます。 return (プロパティ->Get(rNextLine))? true : false; みたいに1行で書くためにで%ハンドル演算子をキャストするような方法はないでしょうか。
こういう風にできる。 pin_ptr<int> p = &rNextLine; return プロパティ->Get(*p); ただ、pinしないそっちのほうが性能では優れていそうな気がする。
934 :
932 :2009/01/24(土) 00:00:01
>>933 pin_ptrについて調べてみます。
ありがとうございました。
935 :
デフォルトの名無しさん :2009/02/01(日) 15:21:56
.NETぢゃないライブラリならアプリと同梱して自動でインストールできるのに、 .NETってMSのサイトからDLして別途インストールさせないといけませんよね? これ、自分で勝手にファイル配れるようになってればまだマシだったのに、 いろいろなバージョンをDL、インストールしないといけない現状はいかがなものかと思います。 .NETって騒ぎ始めたあともMS謹製のOfficeは.NETじゃなかったと思うんですが、 やはりうざすぎて嫌われるのを予知していたのでしょうか
配れます
勝手に.net最新版をインストールしても、他のアプリケーションに悪影響を及ぼすことは ありませんか? あるいは他のひとに違うバージョンとかパッチをインストールされても動作が変わったり する恐れはありませんか?
ない 勝手に適当に選んでくれる
そうでもない。 2.0以降は大丈夫だが。 1.0-1.1以降 1.1-2.0以降 は動作は保障されない。
>>939 どうせ書くなら「まともな」日本語で頼む。
理解できないの?ハハッワロス
>>939 最新版をインストールしても古いのが使われるよ
逆に新しいので使わせたかったら、 古いのをアンインストするか、 構成ファイルでバージョン指定 <configuration><startup> <supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v1.1.4322"/>
クラスライブラリ(dll)作る プラグイン用に用意されたdllを参照してその中のクラスを継承するパターンが多い プラグインだからと言って特別なことは何もない
mscoree.libってどこにあるん?
Windows SDKに入ってるから入れてやれば C:\Program Files\Microsoft SDKs\Windows\{Version}\Lib あたりにあるとおも
String::Format()関数を使って文字列をlabelコンポーネントで表示しているのですが、 タブが表現できず困っています。 "\n"はちゃんと反映されて改行されるのですが、"\t"としても、sprintfのようにタブが表示されません。 どのようにすればタブが反映されるのでしょうか?
System.Windows.Forms.LabelがOS標準のLabelを使ってないせいでタブの扱いなどに互換がない。 その文字列をMessageBox.Showで表示したらタブが処理されているのが分かる。
951 :
949 :2009/03/01(日) 01:55:44
>>950 そういうことでしたか。
ありがとうございました。
ビットマップのメモリリークで困っています。 pictureBoxコンポーネントをフォームに配置し、プログラム上で以下のような記述で描画しています。 // pictureBoxコンポーネントからBitmapを抽出する Bitmap bmp = pictureBox->Image; // 描画 bmp.SetPixel( 10, 10, Color::FromArgb( 255, 255, 255 ) ); // BitamapをpictureBoxコンポーネントにセットする pictureBox->Image = Image::FromHbitmap( bmp.GetHbitmap() ); この処理をタイマーで定期的に行うのですが、処理を行う度に抽出したビットマップ分の メモリが増加していき、しまいにはメモリが足りないと言われてプログラムが落ちます。 bmp.Dispose()はプライベート関数なので呼べず、Deleteも効きませんでした。 そもそも、自動変数的に宣言しているので、スコープ(タイマー処理関数内)を抜けたら 自動的に解放されるのでは、とも思います。 どのように対処すればよいでしょうか?
だいぶ誤解があるようだけどその前に pictureBox->Image = bmp;じゃダメなのか
>>952 とりあえずコードに関する事だと、
pictureBox->Image を直接編集するように変更すればいい
次に忠告、
C++/CLIはC++と.NETの両方に精通した者が使う言語
というか、そうじゃないとまともに使えん(取り扱い注意)
>>953 bmp が Bitmap^ じゃないからそれじゃダメだ
そもそも、Bitmap^ なら再代入いらないんだが
955 :
954 :2009/03/01(日) 17:50:20
以下、余談 (一応、
>>952 の説明)
・bmpはスコープ抜けるときにDisposeされる
・GetHbitmap()で作ったHBITMAPは解放されない(これが直接の原因。DeleteObject() せよ)
・元のpictureBox->Imageも直ぐにはDisposeされない (delete すべし)
それ以前に自分がやってることの珍妙さを理解してるのか疑問
1. pictureBox->Image の中身を bmp にコピー
2. bmp から HBITMAP (GDI) を作成 (コピーされる)
3. 2で作成した HBITMAP (GDI) から Image (CLI) を作成 (コピーされる)
>>954 PictureBoxから直接Bitampを取り出すのってできたっけ?
まあBitmapにしないで、Graphics.FromImageを使えばいいはずだけど。
普通にキャスト(C++/CLIだとsafe_cast)すればいいと思うよ Bitmap であることを保証するのはプログラマの仕事 (プロパティには自分で代入してるはずでしょ?)
PictureBox.ImageってBitmap^型じゃなかったか? それをそのまま使えばいいだけじゃないのかと あと勘違いしてるみたいだけど,C++/CLIではBitmap^とBitmapはどちらもハンドル型だよ
>>958 いやいやいや、名前通りImage^型だよ。
あと、^なしのBitmapだとスコープを抜けるときにDisposeが呼ばれるから、
単純に同じと言いきったらまずいだろ。
960 :
952 :2009/03/02(月) 00:10:30
みなさん、ありがとうございます。 ちゃんと勉強してから組まないといけませんね(汗) ありがとうございました。
>>960 とりあえず、.NET使いたい/勉強したいだけならC#に行くといい
一番重要なのは、コンパイルが早いことと、インテリセンス、スニペット使い放題なこと
962 :
945 :2009/03/04(水) 22:14:29
ソース公開されてるプラグイン見れ あとそれPASSが設定されているわけだが
panel1の中にpictureBox1を配置して panel1.AutoScroll = true;としたのですが スクロールバーの表示が何か変です。 初期状態ではpanel1.HorizontalScroll.Maximumや panel1.VerticalScroll.Maximumの値が100で、 pictureBox1の位置とサイズをpanel1より大きくすると Maximumの値がpictureBox1に合わせて広がりますが その後pictureBox1の位置とサイズを小さくしても Maximumの値が広がったままになっています。 その後panel1の中にpictureBox1が収まると スクロールバーは縦横とも表示されないのですが、 横は収まってるけど縦に収まらない状況になると 本来なら縦スクバーだけ表示されるはずなのに 必要ない横スクバーまで表示されてしまいます。 panel1.HorizontalScroll.Visibleを確認するとfalseでした。 スクロールバーの稼動範囲はMaximumの値を基準に しているようですが実際には反応しません。 Maximumの値は取得できても変更することはできなくて ガバガバに広がっていく一方なのでスクロールバーを 締めなおすこともできません。どうしたもんでしょうか? panel1.HorizontalScroll.LargeChangeとかは変更できるのに…
>>964 一生懸命書いてるつもりかもしれんが文章が「日本語で書きください」過ぎる。
ただ、HScrollProperties.Maximumってどういう値かわかって操作してるのか?
Valueプロパティに関心がない限り、普通は触る必要がないはずの値だと思うんだが。。
横にスクロールする必要がない状況でも ScrollProperties.Maximumが大きいままなので それが機能しないスクロールバーが表示される原因と 何か関係があるのではと思いました。 ScrollProperties.Maximumでスクロール可能な範囲の上限を 取得または設定しますとあるので適切な値を設定すれば スクロールバーがバグって表示されることもないかと panel1.HorizontalScroll.Maximum=100とかやってみても Maximumの値は100になってくれません。 Maximumの値を自分で変更するにはどうすれば、もしくは 不要なスクロールバーを表示させないようにするには どうすればいいのかで困っております。
スクロールバーは一度AutoScrollをfalseにして またtrueにすれば表示されなくなりました。 中途半端ですがとりあえず自己解決です。
文字コードについての質問なんですが、 文字列に独自の文字コードを埋め込もうと思ってて char first[3] = {0xef, 0x27, 0x00}; char second[10] = "・てすと"; char last[3] = {0xef, 0x28, 0x00}; char buforg[100]; ZeroMemory(buforg, sizeof(buforg)); strcat(buforg, first); strcat(buforg, second); strcat(buforg, last); System::String^ strTest = gcnew String(buforg); こんな感じでやって strTestには 0xef27・てすと0xef28 と入るのが理想なんですが 0x30fb・てすと0x30fb になってしまい 「・」が0x30fbなので区別がつかない状態になってしまいます。 Stringはおろかwchar_tなどのUnicode全般でこのような現象になってる気がするのですが、 この勝手に変換されちゃう現象どうにかする方法はないでしょうか? WindowsXP SP3 VisualStudio2008Pro C++/CLI
char second[10] = "00てすと"; // 0xfb30 second[0]=0x30, second[1]=0xfb; ではダメか? ちなみに、ソースファイルの文字コードは何ですか? (UTF-16(Unicode):UTF-8:S-JIS)
>>969 0x30fb 0x30 0xfa1b 0xff84 'す' 'と' 0x30fb って感じになりました。
ソースコードは日本語(S-JIS) コードページ: 932です。
Unicode(UTF-8シグネチャつき)コードページ:65001
Unicode コードページ1200
Unicode(Big Endian) コードページ1201
で試してみましたが効果ありませんでした。
CLIでもデフォ文字コードってUnicodeでなかったか? 独自コード梅たいなら徹頭徹尾BYTE[]で扱わないとダメなんでないの
どうやら外字領域の文字コードを使うとShiftJISの外字領域とUnicodeの外字領域が1対1で対応してるので うまくいくぽいです。 なので一時的に 0xef27を外字領域の文字コードに置き換えるなどして対処してみます ありがとうございました。
>>968 初めからwchar_t使えばいいじゃない。
wchar_t first[] = {0xef27, 0x00};
wchar_t second[] = L"・てすと";
wchar_t last[] = {0xef28, 0x00};
wchar_t buforg[100];
ZeroMemory(buforg, sizeof(buforg));
wcscat(buforg, first);
wcscat(buforg, second);
wcscat(buforg, last);
System::String^ strTest = gcnew String(buforg);
"・てすと"をwchar_tにするのがいや?
だったら、first、second、lastみんなSystem::Stringにしてから連結するのが楽だよ。
>>969-970 ソースコード自体の文字コードは、プログラムには基本的に影響しないよ。
974 :
969 :2009/03/14(土) 18:46:03
>>973 その System::String にどうやって外字コードを埋め込むのかの問題。
:
0x30fb --> "・" だから、Unicode-BE でソース書かないと。ただし、Visual Studio IDEで開くと文字化けする。
char型に 0xfe が代入出来てるのも気になった。
:
テスト方法:
IO::StreamWriter^ sw = gcnew IO::StreamWriter("testCLI.txt", false, Text::Encoding::BigEndianUnicode );
sw->Write(strTest);
sw->Close();
>>974 いや、ソースコードがいかなる文字コードだろうと、
char mbs[] = "・";はchar mbs[] = {0x81, 0x45, 0x00};と同じだし(日本語環境なら)、
wchar_t wcs[] = L"・";はchar mbs[] = {0x30fb 0x0000};と同じ。
そのテスト方法のコードで確かめてみれば分かる。
charの初期化で0xfeを指定している部分は警告レベルを上げると指摘される。
'\xfe'と書けばいい。
976 :
974 :2009/03/14(土) 22:16:46
>>975 そのとおりです。
> char second[10] = "・てすと";
> 「・てすと」になってしまい、「・」が0x30fbなので
初期化の時点では「・」は0x30fbでない。
もしかして、"・てすと"の「・」ってその外字だったり独自のコードだったりするの?
978 :
969 :2009/03/15(日) 00:07:10
>>968 UCHAR first[3] = {0xef, 0x27, 0x00};
UCHAR second[10] = "・てすと";
UCHAR last[3] = {0xef, 0x28, 0x00};
TCHAR buforg[100];
などのように、変更する。
System::String((TCHAR*)buforg); に変えるだけでも同じ結果になる。
> strTestには 0xef27・てすと0xef28 と入るのが理想なんですが
979 :
969 :2009/03/15(日) 00:47:00
間違い。 TCHAR second[5] = L"・てすと"; > もしかして、"・てすと"の「・」ってその外字だったり独自のコードだったりするの? 違う、と思う。
>>978 TCHARってだけ書かれてもUNICODEのときの話かそうでないのか分からない。
981 :
969 :2009/03/15(日) 02:07:02
あっそうだ WCHAR。 > char first[3] = {0xef, 0x27, 0x00}; > char last[3] = {0xef, 0x28, 0x00}; それと、このあたりのバイトオーダーも気になるから UCHAR first[3] = {0x27, 0xef, 0x00}; UCHAR last[3] = {0x28, 0xef, 0x00}; > strTestには 0xef27・てすと0xef28 と入るのが理想なんですが
982 :
973 :2009/03/15(日) 17:50:52
>>977 マルチバイトの0xef27と「・」(0x8145)が Stringにしたときに同じ文字コードだよってのを確認するための「・」です。
最終的にStringインスタンス生成するときにUnicodeで渡せばエンコード入らないので
独自文字コードが変化しないって感じですか。
今回は出力する直前までbyte[]で保持し続けておいて出力する段階で外字領域に一時的に変換するって形で対応しちゃったんですが
とても勉強になりました。ありがとうございました。