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


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

VB.NET質問スレ(Part30)



1 名前:デフォルトの名無しさん mailto:sage [2009/05/17(日) 10:00:19 ]
前スレ

VB.NET質問スレ(Part29)
pc12.2ch.net/test/read.cgi/tech/1235206416/l50

テンプレは>>2

511 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:26:00 ]
せめてクラス/構造体ではなくC++/CLIみたいに参照型/値型って命名だったら…
453には無力だけど勘違いは多少減ったかも知れない

512 名前:デフォルトの名無しさん [2009/07/14(火) 21:26:01 ]
>>506の指摘はあながち的外れではないわな
構造体を使うのが間違ってる
もともと参照型なら問題にならない

513 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:29:37 ]
vb.netではC言語で言うところのポインタはないのですか?
名前が違うだけで中身が同じ構造体を処理したいんだけど。

514 名前:デフォルトの名無しさん [2009/07/14(火) 21:32:07 ]
>>511
C++/CLIでは参照クラス/値クラスだよ
参照型/値型とクラス/値型は意味が違う

>>513
参照型
クラス

515 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:37:28 ]
C++/CLIのは文書で説明してもややこしいだけだな。
参照型 ref class/ref struct
値型   value class/value struct
classとstructの違いはメンバーのスコープのデフォルトがprivateかpublicかの違いだけ。

値型はユーザー定義(構造を持った)値型とプリミティブ(基本)型の2つ。

516 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:41:47 ]
>>513
ない

517 名前:デフォルトの名無しさん [2009/07/14(火) 21:42:51 ]
enum classも忘れないであげてください
プリミティブ型というとプリミティブ型も構造体だろとか言う奴がでてきそうだが
.NETではプリミティブ型は実際に存在する
型情報を擬装してるだけ

518 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:43:11 ]
C++/CLI持ち出すんだからそれは当然知ってる
VBが参照型と値型をわけるのにClass/Structureってキーワードを使ったのが残念だったという話

>>513
そんな古くさいことは古くさい言語でやってれば十分です、みたいな

519 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 21:46:00 ]
そういえばVBにはunsafeはなかったね。



520 名前:デフォルトの名無しさん [2009/07/14(火) 22:10:11 ]
>>513
考え方が違うんだ
コピーが渡るかポインタが渡るかは型の種類によって決まる。
前者は値型、後者は参照型と呼ばれる。構造体は値型。
ポインタ渡しされるようにするには構造体ではなくクラスとして定義する

521 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:12:34 ]
で、クラスとして定義すれば、

> 名前が違うだけで中身が同じ構造体を処理したい

は実現できるの?

522 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:18:37 ]
StructLayout属性、FieldOffset属性で何とかなるが、
メモリ上のイメージを意識するようなプログラムは、
プラットフォーム呼び出しなどをのぞき極力避けるべきだな。

523 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:21:30 ]
へー。できるんだ。知らなかった。
StructLayout/FieldOffset 属性って P/Invoke のときにしか使えないもんだと思ってた。

>>513 じゃないけど、勉強になったよ。教えてくれてありがとう。

524 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:36:23 ]
VBの超手抜き機能、遅延バインディングを忘れてはいないか?

525 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 22:56:29 ]
VisualStudio使ってるとイチイチ警告出るからウザイ

526 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 23:01:54 ]
VB2010では「DLRを利用したメタプログラミング」と言い張れます

527 名前:デフォルトの名無しさん [2009/07/14(火) 23:56:13 ]
MethodInvoker を使って子スレッドから親コントロールの値を変える一番簡単なサンプルコードをお願いします
C#だとあるんだけど構文が特殊でぜんぜんわかりません
TextBox1.text="hoge"
TextBox2.text="hogehoge"
これをやりたんです

お願いします

528 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:03:57 ]
C#のソースがあるならネットにコンバータが転がってるから変換してみれ

529 名前:デフォルトの名無しさん mailto:sage [2009/07/15(水) 00:16:12 ]
俺はこう書いてるけど、やたらめんどくさいね。C#だともっと簡単なんだっけ?

Delegate Sub hogeDelegate(ByVal c As Control, ByVal s As String)

Sub SetText(ByVal c As Control, ByVal s As String)
  c.Text = s
End Sub

Sub ThreadSafe_SetText(ByVal c As Control, ByVal s As String)
  c.Invoke(New hogeDelegate(AddressOf SetText), c, s)
End Sub

で、使うときに
ThreadSafe_SetText(TexxtBox1, "hoge")



530 名前:デフォルトの名無しさん [2009/07/15(水) 00:24:36 ]
スペシャルありがとうございます!
ちょっとやってみます!

C#は仮想関たら使って意味がわかんないんですが、かえってこの方が意味がわかりやすいですね

531 名前:デフォルトの名無しさん [2009/07/16(木) 02:31:27 ]
画面をキャプチャーして高速で画像を処理したいのですが
画面をモノクロでキャプチャーすることは出来ますか?

やりたいのは
キャプチャーしたデータを2色に変換
手持ちの2色の画像データと比較して類似部分を調べる
というものなのですが、キャプチャーの段階で2色ができれば
変換の手間が省けるかなと思いました。
100*100ピクセルくらいのサイズの画像を
一秒以内に何十枚か処理したいです。

532 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 03:22:41 ]
VS2008 でプログラム内からGridViewを複製し、
複数個のGridViewを表示しようとしているのですが、
そもそもGridViewにはDataTableみたくCloneメソッドは用意されていないのでしょうか?

というのも、プログラム内からGridViewのインスタンスを作成し、行>列・・・色 等を
作成していけば確かにGridViewを動的に作成する事はできるのですが、
面倒です。

DataTableにはDataTable.Cloneというメソッドが用意されているのに、
GridViewにはGridViewの構造をコピーするメソッド(機能)は用意されていないのでしょうか?



533 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:39:30 ]
>>531
>一秒以内に何十枚か
VB単体だと難しそうだねえ。
どっかでライブラリ (DLL) 探してきて (勿論、C/C++ で自作も可)
P/Invoke で呼び出すとかした方がいいかも知んない。

>>532
マルチすんな糞が

534 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 09:59:27 ]
APIべったりでできないことはないだろうけどVB関係ないしVBでやる意味もないな
画像処理はせめてポインタ使える言語でやった方が…

535 名前:デフォルトの名無しさん mailto:sage [2009/07/16(木) 10:05:14 ]
OpenCVでいいじゃないか

536 名前:デフォルトの名無しさん [2009/07/17(金) 09:27:16 ]
教えてください
#Region定義行や関数の頭としっぽの左側にソースを隠すことができる
+マークがありますけど、この呼び方はなんというのでしょうか?
キーボードショートカット操作で隠したり表示させたりする方法を
検索したいのですが用語がわからず困っています。

537 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 09:39:36 ]
>>536
コードをアウトライン表示する/非表示にする

538 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 18:14:54 ]
フォームのプロパティにStartpositionがないのですが、どうしてですか?

539 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 00:16:04 ]
作り手がそうしてるから



540 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 02:59:07 ]
>>538
あるよ

541 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 21:16:58 ]
System.Net.Dnsでは、アドレスとホスト名しか参照できないみたいなんですが、
txtレコードをクエリするいい方法ないですか?

外部コンポーネントで何かないか、
WindowsAPIで呼び出してできる例とかあれば良いんですが

それ以外で思いつくのは
NSLOOKUPを呼び出す
ソケットでDNSクエリ自作
ぐらいだが、どっちもあんまりやりたくない


542 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 21:31:27 ]
nslookupもどきが可能になるコンポーネントがあったような・・・
これだったかな?
www.codeproject.com/KB/IP/dnslookupdotnet.aspx

543 名前:デフォルトの名無しさん mailto:sage [2009/07/18(土) 22:44:33 ]
iphelper API でできた気がする。確か、MX は引けた。

544 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:22:30 ]
非常に初歩的で申し訳ないのですが
テキストボックス(複数行)の最終行を取得するにはどうすればよいでしょうか?
TextBoxのヘルプ等見たのですが見つけられませんでした。
感覚的には
lastLine = tboInput.GetLastLine()
のような感じで求められるのではと思っているのですが。
ご存知の方ご教示お願いします。

545 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:40:18 ]
ズバリってのはないと思った

末尾の文字位置から行を求める方法とか…
lastLine = tboInput.GetLineFromCharIndex(tboInput.Text.Length - 1)

546 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:42:18 ]
あ、行の文字列の取得なのか
>>545で得られるのは行インデクスです

547 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 12:45:41 ]
Lines()プロパティでいったん全行を取得してどうこうするのは無駄が多いかな

Dim allLines() As String = textbox.Lines()
lastLine = allLines(allLines.Length -1)

548 名前:544 mailto:sage [2009/07/19(日) 13:36:30 ]
>>545-547
早速のレスありがとうございます。
>あ、行の文字列の取得なのか
分かりにくくて済みません。まさに最終行のインデックスです。

ですから>>545のご回答が教えたいただきたかったことになります。

今ほどプログラムに組み込んだところうまくいきました。
大変助かりました。ありがとうございました。
>>547も参考にさせていただきます。

549 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 02:39:47 ]
MaskedTextBoxで時間の入力欄を作っております。
入力欄をhh時mm分という表記にしたのですが、hhを入力した後、
カーソルを"時"の後ろに自動で動くようにしたいと思っています。
(mmからbackspaceで戻った際も同様にカーソルを移動させたい)
ACCESSでは特にプログラム組まなくてもそのような動作が出来ていたのですが
、VB.NETでは自分で実装が必要ですよね?
どのようにすればいいか教えてください。
お願いいたします。



550 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 05:11:47 ]
共有ファイルサーバー上にAccessのmdbファイルを置いて、
各PC上からVB.NETで作成したアプリで接続するような形のシステム
を作っているのですが、ネットワークが繋がらない等の理由で
DBにアクセス出来なかったときにエラーを返す処理をどのように
すればよいかわかりません。
現在は、下記のような方法で起動時にDBのテーブルからデータが正常に取得
出来なかった場合、エラーを返すようにしています。

try
〜TableAdapter.Fill(〜dataset.〜テーブル)
catch
Msgbox("〜テーブルからデータを取得できませんでした")
end try

この場合だと、DBに接続出来なかったのか、テーブルに不正なデータが入っていて
取得出来なかったのか判断がつきません。
現在DBへ接続しているのかという状況を返すメソッドがあれば教えてください。

551 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:31:12 ]
>>550

ふつー、catch でexception拾うだろ。


552 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 13:35:09 ]
まあ最初の2行で既に失敗臭がするけどな。

553 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 14:01:39 ]
>>552
俺も最初の2行でもう読む気うせたw

554 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:42:09 ]
>>553
Accessって時点で地雷臭しかしないからな

555 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 15:45:08 ]
Accessというよりmdbを共有するってのがな

556 名前:550 mailto:sage [2009/07/20(月) 17:26:18 ]
>>555
じゃあどうすればいいんですか?
DBサーバーは会社で立てれないんでmdbファイルを共有くらいしか
思いつきませんでした。
納期は迫ってますが、自社から依頼された開発なのである程度は自分で
仕様決めてよいので今からでもなんとか変更できます。
アドバイス下さい。

557 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:28:38 ]
DB サーバーを立てられない、ってことなら、壊れるのを覚悟で mdb でいいだろ。

558 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:41:09 ]
>>556
そうだな。
じゃあ、せめて同時には一人しかアクセスできないようにするかな。


559 名前:550 mailto:sage [2009/07/20(月) 17:52:42 ]
>>558
すみません。
書いてませんでしたが、同時アクセスは出来ないようします。
基本的にスタンドアロンで問題無いシステムなんですが、
各自のパソコンから使えるようにしたかったので、mdbファイルを
共有ファイルサーバー上に置くようにしました。
コーディングはほぼ完了したのですが、同時アクセス出来ないような仕組みは特に
作ってません。
mdbファイル側で共有設定してないから2台以上の接続があったら勝手にはじいてくれる
と思ってるのですが、処理を組み込んだ方がいいですか?



560 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 17:56:13 ]
処理しないと例外で落ちるだろ

561 名前:550 mailto:sage [2009/07/20(月) 18:03:24 ]
>>560
そのような処理のやり方がわからなかったので、
現状ではtableadapter.Fillの時点で例外を拾ってエラーを吐くように
してます。
エラー吐いたらDBを他で使ってるか、データがおかしいか、ネットワークがおかしいから
時間が経ってから使用するようなルールにしようと思ってます。

562 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:17:39 ]
つーか、mdb ってデフォルト共有アクセス可だろ?

563 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:25:10 ]
つーかポスグレのがいい

564 名前:550 mailto:sage [2009/07/20(月) 18:28:56 ]
>>562
デフォルトでは共有アクセスできないと思います。

565 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:33:18 ]
つーか、mdbって使ったこと無いww

566 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:35:29 ]
>>564
特に指定しない限り、別のモード (たとえば、adModeShareExclusive) を設定しない限り、
ADO の接続は共有更新アクセス モードで開かれます。

嘘乙


567 名前:550 mailto:sage [2009/07/20(月) 18:45:55 ]
>>566
そうなんですか?
俺の環境では出来なかったような気がしたのですが、すみません間違ってたようです。

ということは現在の作っているシステムだと、おそらく2ユーザー以上が同時に接続
出来てしまうものと思われますので、DBのユーザーテーブルにログイン中を示すフラグを
持たせる事で回避させることにしました。
他ユーザーがログイン中だとエラー吐いて画面をクローズさせる処理で問題ありませんか?

568 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 18:50:21 ]
意味わからん。最初から排他で開けばいいだけのこと。

569 名前:550 mailto:sage [2009/07/20(月) 18:56:59 ]
>>568
自分の作り方だとTableAdapter.Fillの1行でDBのOpenから取得まで
全て行っているので、どこに排他で開くコードを記載していいか
わからないんです。
納期まであまり時間が無く、簡単な方法が思いつきません。
TableAdapterのプロパティのあたり弄ればいけますかね?



570 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 19:02:02 ]
あー。データセットだと開けっ放し、ってわけには行かないな。すまん。

571 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 19:04:17 ]
まあ、とりあえずそのまま納品しろw

572 名前:550 mailto:sage [2009/07/20(月) 19:04:58 ]
おそらく下記のようなコードになるんですよね?

Dim cn As ADODB.Connection
cn = New ADODB.Connection
cn.Mode = adModeShareExclusive
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\〜.MDB;"

これでDBを開くまではわかるんですが、
この後、TableAdapeterのFillメソッド使うのって有りですか?
open使った場合にはcloseまできちんと書くやり方にしなければいけませんか?


573 名前:550 mailto:sage [2009/07/20(月) 19:10:22 ]
>>570
DataSetだと排他モードで開いておくと言うのは駄目なんですね。
やっぱりログイン中のフラグを設ける方向で考えます。

>>571
社内で使用するプログラムなのでこのまま納品して白を切ってもいけそうですが
せっかく作るんで修正します。
納期に遅れたところで上司の給料がカットされるくらいなんで全然問題ないですw

574 名前:541 mailto:sage [2009/07/20(月) 21:10:32 ]
>>542
情報サンクス
しかしこれ、登録しないとダウンロードさせてくれないのか...
英語の規約とか読むの大変

>>543
ちょっとしらべてみた範囲ではやり方がわからなかった
プラットフォームSDK入れろとかなんとか、
ちょっと手軽に使うってわけにはいかないみたいだ

いろいろ探して、.NET 3.5のC#でDNSクエリするやつみつけた
んでそれ使ってみたんだが...
.NET Framework3.5って、Windows2000で動かないという事実を発見して挫折中


575 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:19:42 ]
msdn.microsoft.com/en-us/library/ms682100(VS.85).aspx

でいけそう。

576 名前:541 mailto:sage [2009/07/20(月) 21:42:55 ]
>>575
ありがとう
WindowsAPIですね。たしかにいけそうだが
これを.NETから呼び出すのも結構苦労しそうだ

ほかにもいくつか.NETでDNSクエリするの見つけたんで検討中
.NET Frameworkでサポートしてほしいとこだが...

WindowsAPIは最後の手段にします

577 名前:デフォルトの名無しさん mailto:sage [2009/07/20(月) 21:50:59 ]
何が苦労なんだか。P/Invoke すればいいだけだろ。

pinvoke.net/default.aspx/dnsapi/DnsQuery.html

とかあるし。

578 名前:550 mailto:sage [2009/07/21(火) 03:38:40 ]
アプリ使用中のユーザーにフラグを設けるという案は駄目でした。
アプリが例外エラーで落ちたときにフラグをオフに出来ないからです。
なにかいい方法がありましたら教えてください。

579 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 06:10:28 ]
アプリが例外エラーで落ちたときにフラグをオフにするようにしとけばいいのでは?



580 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:05:36 ]
フラグじゃなくロックファイルを作成すればいいんじゃね?
起動したらロックファイルを作り、終了したら削除。


581 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 10:30:34 ]
>>540
ないんです…。
あるプロジェクトのフォームプロパティにはあるんですが、別のプロジェクトのプロパティには無いんです。

582 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:59:36 ]
>>580
何も解決してないからw

>>578
起動時にミューテックス作成&取得。
失敗したら誰かが使用中だと解るし、プロセスが終了したら勝手に解放される。

583 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 17:44:47 ]
ミューテックスってネットワーク越しでもおkなの?

584 名前:541 mailto:sage [2009/07/21(火) 19:59:35 ]
>>577
このサイトいいですね
構造体やら列挙やらをVB.NET用に書き換えるのに苦労するかと思ったんだ
まあ慣れた人なら機械的に変換していけるんだろうけどね

585 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:05:35 ]
>>583
だめ。

バカだなぁ、おまえら。そういうときのために DB サーバーがあるんだろ?
・・・あれ?

586 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 22:09:21 ]
だから共有フォルダにロックファイル作ればいいんだお

587 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 23:45:08 ]
ミューテックスってデバッグ時に■で終了しても解放されるの?

588 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:05:16 ]
ファイル開いてるときに強制終了したってファイルは閉じといてくれるだろ?
そういうことだよ

589 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 00:52:07 ]
普通に排他で開いたらいいだけじゃないの?
TableAdapterとかDataSetだからダメって何言ってるの?

ところで、なんでADODBなんだよ。
TableAdapterの中見てみろ。




590 名前:587 mailto:sage [2009/07/22(水) 01:48:22 ]
>>588
thx

591 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 18:41:40 ]
ActiveReport 3.0で質問があります。

ページフッタのFormatイベント内で
最大ページ数を取得するにはどのようにしたらよいのでしょうか?

592 名前:デフォルトの名無しさん mailto:sage [2009/07/22(水) 21:02:43 ]
サードパーティ製品はスレ違い
サポートに電話して聞け

593 名前:550 mailto:sage [2009/07/23(木) 02:56:47 ]
>>589
排他で開いても、Datasetに取得した時点でDBの接続は切れるんで
そのあと、他からもアクセス出来てしまいます。

とりあえず、皆様にはいろいろアドバイス頂きましたが、
時間も無い為、DB上のレコードにフラグを立てて使用中かどうか判断
することにしました。
強制終了して、フラグが立ったままになったらアプリを起動出来ない
ちょっと痛いシステムとなってしまいましたが、バレなきゃOKです。
まだ直す時間はあるので、もしアドバイスがあったらお願いします。

594 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:16:35 ]
それだと結局1レコードは読まないといけない訳だ
やっぱロックファイルのがいいんでね?
で突然死対策に1秒ごとに空更新でもして
他のプログラムはファイルがあったとしても、更新時間見て
10秒以上たってたら死亡判定とか

595 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:19:56 ]
監視用プログラムを別に作って常駐させとけばいんでない?

596 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:44:51 ]
そんな面倒くさいことするか!?
このメモリ浪費家がッ


597 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 08:49:49 ]
起動時にロックファイルをライトオープンで開いて
終了時にクローズするようにすれば
突然死してもファイルはクローズされるんじゃない?
多重起動の判定はロックファイルをライトオープンできるかどうかで。

598 名前:デフォルトの名無しさん mailto:sage [2009/07/23(木) 09:06:09 ]
できた
Public Class Form1

  Private sw As System.IO.StreamWriter

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Try
      sw = New System.IO.StreamWriter("\\共有PC\共有フォルダ\lockfile.txt", False, System.Text.Encoding.GetEncoding(932))
    Catch ex As Exception
      MsgBox("他の人が使ってますお")
      Application.Exit()
    End Try

  End Sub

  Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
    Try
      sw.Close()
    Catch ex As Exception
    End Try
  End Sub

End Class


599 名前:デフォルトの名無しさん [2009/07/24(金) 10:52:42 ]
デザインモードで表示するとエラーになって赤い帯が上に出て
エラー情報としていろいろ内部コードが表示されるやつですが、
あの情報には「〜.Designer.vb」のどこの行がNGなのかが
不明なので、どこを直せばいいのかわからない場合が多い。

こういうとき、再コンパイルしてるときもあるが、ダメなときは
開発環境自体を立ち上げ直して直るときもある。

しかしそれでもダメな場合も多い。こういうときは皆さんどんな風に
して原因突き止めていますか、よろしければご指南を頂きたく。
よろしくお願いします。



600 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 14:29:29 ]
.Designer.vbを直接修正するしかない

601 名前:599 [2009/07/24(金) 14:59:40 ]
>>600
ですよね、で、その場合、そのどこがNGなのかの情報が、あのたくさん
出てくる内部コードの情報には出てない場合がほとんどなのでした。

どこがNGなのかがわかれば対応できるのですが、皆目情報がなくて困って
いるのでした。

602 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 16:03:21 ]
エラー一覧のエラーとか警告に出るけどなぁ

603 名前:599 [2009/07/24(金) 17:06:40 ]
>>602
>エラー一覧

今使っているのはVS2005なのですが、デザイナー画面が出るところに

------
パスの形式が無効です。
非表示

場所 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
場所 System.IO.Path.NormalizePath(String path, Boolean fullCheck)
場所 System.IO.Path.GetFullPathInternal(String path)
場所 System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project)
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()
場所 Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description)
・・・
-------

こういった内部コードが現れては来るのですが何行目が悪いという情報がなく、
「エラー一覧」の中には特に表示されないのでした。どこがNGなのかわかれば
ありがたいのですが、それが出て来ないのでした・・・


604 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 18:53:06 ]
もっと下の方見たらどこかに自分のクラス名があるだろ
その一つ上の行のメソッド名をDesigner.vb内で検索

605 名前:599 [2009/07/24(金) 19:23:30 ]
>>604
どうもです!探してやってみます!・・・と思って、今もう一度デザイナー
を起動したら・・・、ありゃ?何にも他のことしてないのにナンデだろ??
直ってちゃんと出てる。。。なんだろぉ〜。

この次またNGになったらその仕方で見てみます。助かりました、大変
ご迷惑、おかけしてすみませんでした。。。

あれーそれにしても・・・。

606 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 10:57:36 ]
VB.NET2003で
Dim app As New Excel.Application
Dim books As Excel.Workbooks
Dim book As Excel.Workbook
Dim sheets As Excel.Sheets
Dim sheet As Excel.Worksheet
のように定義すると、端末によってNew Excel.ApplicationやExcel.Workbooksが定義されていませんというようなエラーがでます。
Imports System.Runtime.InteropServices
Imports Microsoft.Office.Core
は記述してあり、Microsoft Excel 11.0 Object Libraryは追加してあります。

どの端末もVB2003はインストール済みで上記の設定はしてあるのですが、端末によってこのエラーが出るときと出ないときがあります。
このエラーがでないようにするにはどうすればいいのでしょうか?

607 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 11:08:32 ]
Office がインストールされてないんじゃね?

608 名前:606 mailto:sage [2009/07/25(土) 12:26:01 ]
>>607
ありがとうございます。
Officeはインストールされています。

上記のような現象が起きている方はいませんか?

609 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 12:40:21 ]
あとは、PIA がインストールされてないとか?



610 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 13:59:09 ]
OfficeのPIAは、.NET1.1以降が予めインストール済みの環境で
Officeのインストールを実行しないと入らないからなあ。

611 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:18:40 ]
>>606
Microsoft Excel 11.0 Object Libraryへの参照をプロジェクトに追加したときに
VSが自動的に生成するCOMラッパークラスの入ったdll(生成されるファイルのファイル名は忘れた)
が実行環境にインストールされてないんでしょ。

プロジェクトエクスプローラを「全てのファイルを表示」にしてる?
っていうか、こんな初歩的なことも知らないとしたら相当ヤバいな。

612 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 14:30:29 ]
>>611
Interop.Excel.dll
Interop.Office.dll
あたり?

613 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:25:49 ]
>>589
だからコネクションは自分で明示的に開けばいいの。
なんのためにConnectionプロパティが生成されると思ってんだ。
TableAdapterだからって接続したままに出来ない理由はない。


614 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 18:27:05 ]
>>589じゃなくて>>593だった。
自分に突っ込んでどうする…

615 名前:606 mailto:sage [2009/07/25(土) 19:13:53 ]
>>609-612
ありがとうございます。
Interop.Excel.dll
Interop.Microsoft.Office.Core.dll
は存在して、参照設定から見えていたと思います。

>OfficeのPIA
他の人もアセンブリの問題で色々苦労していたようなので、これが原因なのかもしれません。

Dim app As Object
Dim book As Object
Dim sheet As Object
app = CreateObject("Excel.Application")
こんな感じだと正常に動作するようなんですが…

616 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 19:35:52 ]
>>615
ところでそれってソース開いたときにエラーとかじゃ無くって
実行するときにエラーってことだよね?
念のため

617 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 20:08:07 ]
>>615
人の話ちゃんと聞こうよ。
参照設定は大丈夫か?なんていってないでしょ。

実行環境の話をしてるんだよ。
その2つがユーザーのマシンにもちゃんと入ってるの?
いやまず間違いなく入ってないんだってば・・・

618 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:06:43 ]
開発環境 VS 2008

アプリケーション固有のメッセージを外部ファイルとして保存して、
プログラム側で起動時に読み込むようなものを作成しています。

上記のプログラムを作成するための定石、または、.NET Framework標準の
クラスなどが存在していますか?
ご存知の方がいれば、教えてください。

現在は外部ファイルをXMLにして、
DataTableのReadXMLで読み込む手法をとっています。

619 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:08:51 ]
ResourceManager とかだな。

プロジェクトのプロパティから追加すれば、簡単に扱えるよ。



620 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:11:39 ]
その固有のメッセージってのはアプリのインストール後にテキストエディタとかで修正したりするモンなの?

621 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:15:49 ]
VB2008EEでExcelにデータを書き出すソフトを作っています。
使う人によってExcelのバージョンがまちまちなのでCOMは使わず以下のような感じです。

Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object

xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.open(パス)
xlSheet = xlBook.Worksheets(1)

xlSheet.Cells(1, 1).Value = "あああ"    '※1
xlSheet.Cells(1, 2).Value = "いいい"    '※2

xlApp.DisplayAlerts = False
xlBook.Save()

xlBook.Close()
xlApp.Quit()
xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing
GC.Collect()

データを入力する部分で、※1だけなら問題ないですが※2を追加するとプロセスが残ってしまいます。
何が原因なのでしょうか。
開発環境のExcelは2000です。

622 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:24:44 ]
思いっきりCOM使ってるよそれ
vb.net excel プロセス でググるといろいろ出てくる
ちゃんと作るのは非常に面倒だからそこだけWSHのVBSなんかで書いてもいいよ

623 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:42:22 ]
>>619
情報ありがとうございます。
試してみます。

>>620
テキストファイルで修正できることを前提にしています。
開発終了後にそんな日が来るとは思いませんが、
どっかのエロいアーキテクトが書いたらしい規約に従う必要があるので……

624 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:45:48 ]
>>622
レスありがとうございます。
COM参照を先にするかあとにするかだけで処理は一緒って認識で合ってますか?オブジェクト使う度に解放が必要と。
WSHは使ったこと無いので調べてみます。

625 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 21:49:39 ]
いやGCに頼るのは不確実だからMarshal.ReleaseComObjectを使って
必ず逐一全て手動で解放する必要がある

626 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:07:25 ]
>>616
ソリューションファイルを開いたときに、New Excel.ApplicationやExcel.Workbooksの所に波線が引かれ、コンパイルができないのです。

>>617
dllが存在しないと、参照設定のExcelとかInterop.Microsoft.Office.Coreのところに三角のマークが出るような気がしました。
確かに全てのファイルを表示にはしていなかった可能性があるので、obj配下にdllが存在しなかったのかもしれません。

627 名前:606,626 mailto:sage [2009/07/25(土) 23:12:27 ]
参照設定のExcel等の所に三角マークが出ていなかったので、Interop.Excel.dll等は存在するものと思ったのです。

628 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:17:26 ]
>>625
できました。ありがとうございました。
ちなみに>>621はMSのサンプルを真似たものなんですが、結局全然違うコードになりました。
あのサンプルは一体何だったんでしょうか…。

629 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 23:22:08 ]
>>626
それ一番最初に書くところ
みんな実行時だと思ってたんだから

でね、それは単に参照が無いだけだから



630 名前:606 mailto:sage [2009/07/25(土) 23:26:56 ]
>>629
ありがとうございます。

プロジェクトのディレクトリごとコピーしているので、obj配下にdllはあるのではないかと思います。
参照設定でも三角マークは出ていませんし。
全く同じコードをプロジェクトごとコピーしたのに、端末によってコンパイルができない理由がわからないのです。

631 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:00:18 ]
>>630
あーもう
じゃ「参照が有効になってない」って言えばいい?
一度参照削除してもう一度登録しなおしてみ?

632 名前:606 mailto:sage [2009/07/26(日) 00:15:33 ]
>>631
どうもです。

一度参照設定のExcel等を削除して登録し直したのですが、それでも駄目でした。
どうも端末依存でアセンブリの問題があるらしいので、それが原因のような気もしているのです。

他の人も逆に私がコンパイルできない端末でないとコンパイルできないようなことを言っていたし、
端末固有の設定がおかしいのかもしれません。

633 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:25:12 ]
2003時代にエクセルを参照したプロジェクトを複数の開発環境に持ってくことを
何度かやったことがあるけどそんな問題は起こった記憶がないな。

まさかとは思うけど、

(1) 環境ごとにエクセルのバージョンが違う
(2) エクセルそのものがインストールされてない

なんてことはないよね?

634 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:34:48 ]
>>633
ありがとうございます。

エクセルはインストールされていて、両方2003だったと思います。
コンパイルできない端末には確かFlex Gridがインストールされているなど、特殊な設定がなされているのです。
自宅では問題なくコンパイルできていますし、やはり端末依存の問題なのかもしれません。

Marshal.ReleaseComObjectを使っても逆に不安定になったりするし、.NETからエクセルを動かすのは難しいなぁ。

635 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 00:48:31 ]
あー
それは複数のassenblyファイルがある場合だわ
消したらいいよ。

636 名前:550 mailto:sage [2009/07/26(日) 01:14:25 ]
>>598
それよさそうですね。
ちょっと試してみようと思います。
ただ問題は、ロックファイルの出力先が固定になっている部分です。
mdbファイルの場所を移動しても探せるように、Connectionstringをいじれる仕様なので、
ロックファイルの出力先アドレスをxmlファイルに保存しなきゃいけないかも知れません。
納期が近い為、そこまで手が回りませんが参考になりました。
どうもありがとうございました。

637 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:17:10 ]
>>635
AssemblyInfo.vbではなく、確かWindowsディレクトリ配下にアセンブリファイルがあり、それが端末によって異なっているせいで
端末によってコンパイルできたりできなかったりするような話は聞きました。

Dim app As Object
Dim book As Object
Dim sheet As Object
app = CreateObject("Excel.Application")

こんな感じに書くとコンパイルできるようなので、もうコードを書き直すしかないのかなと思っています。

638 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 01:43:08 ]
>>636
普通app.configに書かない?

639 名前:550 mailto:sage [2009/07/26(日) 01:44:08 ]
>>598
ただいま、試験的にプログラムを作って動かしたんですが、完璧ですね。
streamwriterをcloseしない限りは、そのアプリが専有で開いてるから
他からのアクセスが出来ないってことですね。
プログラムが異常終了しても自動的にlockfileへの専有が外れるから
他からのアクセスが可能になるということですね。
これかなりいいと思います。
ありがとうございました。



640 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 02:01:26 ]
>>639
当初の質問と関係なくなってるなw

641 名前:550 mailto:sage [2009/07/26(日) 02:33:32 ]
lockfileを隠しファイルにしたかったんですが、隠しファイルにすると
VBから見えてないのか、Streamwriterで例外エラー拾いますね。
たいした問題じゃないので我慢するしかないですねこれは・・・

642 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:18:52 ]
排他Openできるんならコネクションを開いたままにしとけばいいって何度も言ってるのに
なんでわざわざ独自に作りこむのかね。


643 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:24:27 ]
その方法がわからないからだろハゲ

644 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 20:58:34 ]
全コードで TableAdapter の Connection 書き換えれば
排他で開きっ放しに出来るだろうけど手間考えたら
>>598 みたいな方法が一番簡単だな

645 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 21:09:33 ]
そもそもその排他オープンが安全なのかが怪しいんだよね
それなら別次元の排他処理をしてしまうのもあり
だいたいちゃんとするならDBサーバーを入れるべきだし。

646 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 06:22:32 ]
Dim psi As New System.Diagnostics.ProcessStartInfo
Dim p As System.Diagnostics.Process
Dim ssPath As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe"
Dim ssDir As String = "C:\Program Files\Microsoft Visual Studio\VSS\win32"
Dim ssUser = "user"
Dim ssPwd = "user"
Dim GetPath = "D:\work"

If ssPath.IndexOf(" ") > 0 AndAlso ssPath.Substring(0, 1) <> """" Then
ssPath = String.Format("""{0}""", ssPath)
End If

'ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
'出力を読み取れるようにする
psi.RedirectStandardInput = False
psi.RedirectStandardOutput = True
psi.UseShellExecute = False
'ウィンドウを表示しないようにする
psi.CreateNoWindow = True

'コマンドラインを指定("/c"は実行後閉じるために必要)
psi.Arguments = "/c " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd
'起動
p = System.Diagnostics.Process.Start(psi)
result = p.StandardOutput.ReadToEnd
こんな感じでVSSから最新バージョンを取得しているのですが、データベースのパスを指定したいと思い、
psi.Arguments = "/c set SSDIR=" & ssDir & " && " & ssPath & " get -gtm " & sName & " -GL" & GetPath & " -Y" & ssUser & "," & ssPwd
のようにset SSDIRを追加すると取得できなくなってしまいます。
どこが間違っているのでしょうか?

647 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 07:40:11 ]
&で文字列連結すんな

648 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:02:57 ]
>>647
ildasmで見ると、String.Concatで連結されているのが確認できるよ。
こういう一連の連結に使う分には何ら問題は無い。

649 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:06:19 ]
&& だと環境変数は引き継がれないみたいだね



650 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:22:00 ]
連結後に更に連結するなら、せめてString.Formatを…。
読みにくくてかなわん。

651 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 08:36:24 ]
少しヒント
cmd /c"set AAA=XXX && echo %AAA%"
%AAA%
cmd /V:ON /c"set AAA=XXX && echo !AAA!"
XXX


652 名前:デフォルトの名無しさん mailto:sage [2009/07/27(月) 23:07:00 ]
複数のBMPの画像をAVI動画に変換する方法を大まかにおしえて

653 名前:646 mailto:SAGE [2009/07/28(火) 00:10:18 ]
みなさんありがとうございます。
週末に試してみようと思います。

654 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 01:10:35 ]
>>652
1.Windows ムービー メーカー を起動する
2.対象の画像を読み込む
3.ムービーの発行でDV-AVIを選んで実行
4.AVI動画が完成\(^o^)/

655 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:21:11 ]
ODP.NETを使用し、パッケージをコールしてDataSetを取得し、
コンボボックスのDataSourceにDataTableを入れたのですが、
中身が表示されません。
DisplayMemberとValueMemberプロパティにも項目名を設定しています。
セットした後に、SelectedValueとSelectedTextの値を見ると、
SelectedValueには値が入っていますが、SelectedTextには値がありません。

パッケージをコールすると、
表示する用の文字列と裏で持つ用の文字列を複数レコード取得します。

調べても、問題ないと思うのですが何が悪いのでしょうか?

combo1.DataSource = DataTable
combo1.ValueMember = "AAA"
combo1.DisplayMember = "BBB"

試しに、AAAとBBBを逆にセットしてみたのですが、やはりSelectedValueの方しか値が入っていません。

よろしくお願いします。

656 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:26:57 ]
DataTable には値が入ってるの?

657 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:27:00 ]
SelectedTextはコンボボックスのテキスト入力部の、コピーとかのために「選択」してる文字列だから

658 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:32:58 ]
>>656
DataTableには値がちゃんと入っています。
デバッグでも確認しましたし、DataGridViewに突っ込んで確認しています。

>>657
そこは調べ不足でした。SelectedItemで確認するのが正しいですね。


最悪、ループでAddしていくしかないですかね…

659 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:37:50 ]
もう少し、ちゃんとしたコード出してみ。

DataTable の指定とかおかしそうな気がする。



660 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:43:14 ]
>>659
ソースが手元にないので、覚えている範囲で書きます。

Using ds As DataSet = (オラクルパッケージをFillメソッドで実行)
Using dt As DataTable = ds.Tables(0)

combo1.DataSource = dt ←このdtをDataGridViewに入れ、値が入っていることを確認
combo1.ValueMember = "AAA"
combo1.DisplayMember = "BBB"

End Using
End Using

こんな感じです。

661 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 22:48:35 ]
Disposeしてどうするあほかよ


662 名前:デフォルトの名無しさん mailto:sage [2009/07/28(火) 23:31:00 ]
>>661
うわっ、すいません。初歩的な所で…
なぜ、DataGridViewは表示されたままだったのでしょうか?

663 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:41:38 ]
String.Formatの書式について教えて下さい。

String.Format("合 計 {0,12:\\###,###,##0}", dTotal) → 合 計 -\9,000

String.Format("合 計 \{0,12:###,###,##0}", dTotal) → 合 計 \ -9,000

String.Format("合 計 {0,12:\\-###,###,##0}", dTotal) → 合 計 -\-9,000

dTotalがマイナスの場合は-1をかけて、
String.Format("合 計 {0,12:\\-###,###,##0}", dTotal)とすれば
合 計 \-9,000になるのですが、それ以外の方法で
表示させるにはどうしたらいいでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 11:45:45 ]
セクション区切り記号 ;
を使えば正負でそれぞれに書式指定できる
使い方はカスタム数値書式指定文字列のページ見れ

665 名前:デフォルトの名無しさん [2009/07/30(木) 13:01:18 ]
VBNETの入門書2冊読破したんだけどどうすればいい?

666 名前:663 mailto:sage [2009/07/30(木) 13:03:44 ]
ありがとうございます。
おかげさまで出来ました!
もっと勉強します。


667 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 13:53:02 ]
自動更新で下のやつがきたんだけど手動でダウンロードできないんでしょうか?
できるのであれば方法を教えてください

Visual Studio 2005 Service Pack 1 セキュリティ更新プログラム(KB971090)

668 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:00:15 ]
KB番号ググりゃ見つかるだろ

669 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:08:44 ]
>>667
それクソ時間かかるよな。SP1 のときも思ったけど。



670 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 14:51:40 ]
なんか、やってることはほぼ再インストールと同じなんだそうだ。
だから、DLしてもどっちみち時間かかる

671 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:10:06 ]
>>669
そうそう
だから手動でダウンロードしたいわけなのよ

672 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:25:13 ]
www.microsoft.com/downloads/details.aspx?familyid=7c8729dc-06a2-4538-a90d-ff9464dc0197&displaylang=ja

249MBワロタ

673 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:33:05 ]
.NETからEXCEL使ってなんかやるとき、STAThreadじゃなくてMTAthreadだと、
なんか問題あったりするんでしょうか?

EXCELのオブジェクトを作成したスレッド以外から使ったりはしない前提です。

なんかイマイチこの辺を理解してないんです。

674 名前:デフォルトの名無しさん mailto:sage [2009/07/30(木) 17:49:22 ]
>>672
ありがとうございます






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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