VB.NET質問スレ (Part21 ..
222:217
07/05/16 18:52:59
>>220
ありがとうござます。
もう少しでスニペットで一個一個作るところでした。
223:デフォルトの名無しさん
07/05/16 20:14:55
ファイルを解凍するときに
既にUNLAH32.DLLは動作中ですってエラーがでるのだけど
UNLAH32.DLLを終了処理するには、どう記述したらいいですか?
224:デフォルトの名無しさん
07/05/16 20:32:39
うまく表現できないんだけど、必ず
Public X as Single
Public Y as Single
の二つのフィールドを持つ値型、みたいな型の指定ってできないかな?
もちろんインターフェイスを使えば近いことは可能なんだけど、
構造体の配列をストリーミング的に渡すような使い方をしたいので
パフォーマンス的な理由でなるべくならインターフェイスは使いたくない。
こういう場合、やっぱり特定の型の構造体の配列をベタに引数に取るようにするしかないのかな。
225:デフォルトの名無しさん
07/05/16 20:33:25
実行中のプロセスがあるからじゃないのか?
プロセスみてみてKillすれば?
つうか、動作中です って出てるのを終わらせるのは・・・あんまお勧めしないが?
まぁどういうソフト組んでるかにもよるし・・・
自分で1回UNLAH32.DLLをつかって解凍したあとの動作なのかな?
もしそうじゃないとすれば、UNLAH32.DLLを使うようなソフトは?
WindowをSafeモードで起動して 自分のソフトで解凍しようとしてもそうなるの?
226:デフォルトの名無しさん
07/05/16 20:36:26
>>224
構造体でいいと思うんだけど・・・
少なくとも俺はそうしてる
C++なら別のやり方もあるけど・・・
そこまでパフォーマンスを気にするなら何か他のところで余裕で稼げそうな気がする
227:デフォルトの名無しさん
07/05/16 20:40:40
>>225
自分で1回UNLAH32.DLLをつかって解凍したあとの動作です。
開放処理する必要があるのでしょうか?
その場合どう記述したらよいのか・・・
228:デフォルトの名無しさん
07/05/16 20:45:53
>>227
ということはアンマネージリソースが開放されてないんじゃないかと予想してみる
多分解凍が終わったら引数が帰ってくると思うんだけど・・・・
それがちゃんと出来てるなら
MarshalクラスつかってComObjectかどうか調べて
ReleaseComObject でキチンと開放してやってみてはどう?
229:228
07/05/16 20:48:06
ごめん、書き忘れ
そういえば
UnlhaGetrunning
みたいな現在実行中かどうか調べる関数なかったっけ?
実際にやってる処理差し支えなければ書いてみれば きっと皆こたえてくれるような気がするけどw
230:デフォルトの名無しさん
07/05/16 21:02:33
>>229
'LHA書庫操作を行う
Private Declare Function Unlha Lib "Unlha32" (ByVal hWnd As Integer, ByVal szCmdLine As String, ByVal szOutPut As String, ByVal dwsize As Integer) As Integer
'ファイルのダウンロード
Internet.DownloadFile(URL1, FileName1)
'書庫の解凍
Dim UnlhaLzhFile As String '書庫ファイル名
Dim UnlhaDir As String 'ファイルのパス
Dim UnlhaFiles As String'ファイル(ワイルドカード指定可)
Dim UnlhaSwitch As String '書庫操作命令
Dim UnlhaOptions As String '書庫操作スイッチ
Dim UnlhaCommandString As String'Unlhaのコマンド
Dim UnlhaRetunValue As Integer '書庫操作の結果戻り値
'各種パラメータの設定
UnlhaLzhFile = My.Settings.FilePath01 '"C:\お気に入り.lzh"
UnlhaDir = "C:\Documents and Settings\My Documents\My eBooks\My eBooks\"
UnlhaFiles = ""
UnlhaSwitch = "x"
UnlhaOptions = ""
'ファイル名の前後にダブルコーテーションを付加
UnlhaLzhFile = """" & UnlhaLzhFile & """"
UnlhaFiles = """" & UnlhaFiles & """"
UnlhaDir = """" & UnlhaDir & """"
'各種パラメータの値を元にコマンドを作成
UnlhaCommandString = UnlhaSwitch & " " & UnlhaOptions & " " & UnlhaLzhFile & " " & UnlhaDir & " " & UnlhaFiles & " "
UnlhaRetunValue = Unlha(0, UnlhaCommandString, Nothing, 0) '書庫操作を行う 解凍
231:デフォルトの名無しさん
07/05/16 21:27:21
>>226
やっぱりそれしかないのかな。。
値型用の(ボックス化されない)インターフェイスみたいなものがあっても
いいように思うんだけど。
232:デフォルトの名無しさん
07/05/16 21:29:07
FreeLibrary()
233:デフォルトの名無しさん
07/05/16 21:34:29
>>230
とりあえずウチの環境でVer2.55のDllつかって
パスだけ変えて動かしたらちゃんと動いてるよ
ソフトの中で同じ処理3回呼んだけど
問題なかった
なにか止まっているとかじゃないかな?
>>231
の呼んで開放してやるといいかも
234:デフォルトの名無しさん
07/05/16 23:00:57
初歩的な質問ですがお願いします
参照設定で X を指定する
これはソリューションエクスプローラの参照設定からX追加という作業でよろしいんでしょうか?
これは何を意味しているのでしょうか?
235:デフォルトの名無しさん
07/05/16 23:51:44
>>234
それでいいよ
意味するところは
ある機能に特化した機能の塊を使えるようにする為
ざっくり言えば
Formやボタンなんかが使えるのは使いやすいように最初から
System.Windows.Form
っていうクラスを参照している感じ
236:デフォルトの名無しさん
07/05/17 00:06:41
>>235
わかりやすい説明でありがとうございます
237:デフォルトの名無しさん
07/05/17 00:16:28
いやそれで納得しちゃダメだってw
>>235はImports文によって名前空間の「パスを通す」ことと
プロジェクトのアセンブリの参照設定を混同してる。
234が言ってるのは前者。235が言ってるのは後者
238:デフォルトの名無しさん
07/05/17 00:17:26
すまん前者と後者が逆だな
239:デフォルトの名無しさん
07/05/17 00:26:18
URLリンク(msdn2.microsoft.com)(VS.80).aspx
240:デフォルトの名無しさん
07/05/17 00:28:53
コピペ君って馬鹿だな、まで読んだ。
241:デフォルトの名無しさん
07/05/17 00:42:08
つうか 普通にラベルとテキストボックス30個くらい貼り付けたフォーム開いたら
奇麗に表示されないんだけどどうなのよ
VB6で同じことやったら普通に開くのになぜドトネトのほうが遅いんだ?????
242:デフォルトの名無しさん
07/05/17 00:44:46
WindowsFormsはそんなもん
243:デフォルトの名無しさん
07/05/17 00:47:42
マジで???
Javaも大概重いと思ってたけどそれに同じくらい重いのな(´ヘ`;)
P4 2.4Gでそれなりに重いからWin2000とかの昔のに入れたらもっと重い感じがするってことなのか…・
orz
244:デフォルトの名無しさん
07/05/17 01:04:34
ハリボテの表示が遅いだけで処理は遅くないぞ
245:デフォルトの名無しさん
07/05/17 01:15:43
>>244
UIの描画とかが遅いだけってことなのか
ちょっと安心したよ あの調子で全体遅かったらつかえねー とか思ってたんで
フレームワークがJAVAみたいな資産に足引っ張られてgdgdにならないことを祈りつつ頑張って勉強してみるよ
246:デフォルトの名無しさん
07/05/17 01:22:53
まあどうせ WinForm は WPF にまるごと置き換え予定だしな
少なくともあと5年ぐらいは掛かるだろうけど
247:デフォルトの名無しさん
07/05/17 01:23:58
初心者なんですけど
コンパイルするときに
"cl ファイル名"でやると、
「"cl"は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。」
ってでるんだけど"cl"じゃ駄目なの??
248:デフォルトの名無しさん
07/05/17 01:33:08
ここはVB.NETのスレですが・・・
249:デフォルトの名無しさん
07/05/17 07:55:59
vbc hoge.vb で幸せになれると思うよ。vjcでさらに・・・
250:デフォルトの名無しさん
07/05/17 11:20:04
URLリンク(msdn.microsoft.com)
このタスクバーにアプリケーションを乗せたいんだけど、やり方がさっぱりなんだ。
どこから手を付けたらいいか教えてください。
251:デフォルトの名無しさん
07/05/17 11:57:01
「幸せになれる」って言葉使うヤツきもい
252:デフォルトの名無しさん
07/05/17 12:02:58
>>250
アプリケーションを乗せるってのはグーグルツールバーみたいなアドインのこと??
253:250
07/05/17 12:11:03
>>252
Google Deskbarにみたいにです。
タスクバー右クリック->ツールバーで選択できるようにしたいのです。
機能は検索するとかそういうのを作りたいわけじゃないんですが、
まだタスクバーに作ったアプリを起動させることができないので。
254:250
07/05/17 12:18:13
DeskBandと言うらしいのですけど、そこからがわからない。
255:デフォルトの名無しさん
07/05/17 12:32:46
どっちかというとosの仕様に関する知識になるのかねえ。
こういう資料ってどこにあるんだろう。
256:デフォルトの名無しさん
07/05/17 13:15:31
>>250
BandObjectでぐぐれ
257:デフォルトの名無しさん
07/05/17 13:17:31
QTTabBarがやってるな。C#製らしいけど。
ってみてみたら>>256を使ってるみたい
258:デフォルトの名無しさん
07/05/17 15:45:47
BandObjectってC#なのか?VBじゃ使えんの?
259:デフォルトの名無しさん
07/05/17 15:47:35
使えるだろ・・・・
260:デフォルトの名無しさん
07/05/19 00:01:57
ビルドでbinフォルダにEXE作るとして
他のフォルダのdllを読込む時、
binの中に勝手にdllがコピーされるので、
binのdllを削除したら
「依存関係の 1 つが読み込めませんでした」
というエラーになりました。
この状態でもdllの参照が可能になるには
どうすれば良いでしょうか?
261:デフォルトの名無しさん
07/05/19 00:06:56
>>260
ドットネットフレームワークのDLLがどう登録されてるんだろうな?
ほかのDLLはどこに登録されてるんだろうな?
でも、基本的にそっちのが俺はいいと思うんだが…
262:デフォルトの名無しさん
07/05/19 00:11:29
なんでこう DLL を嫌がるんだろうね
263:デフォルトの名無しさん
07/05/19 00:13:23
>>260-261
日本語書けよ。
エスパー同士の会話か?w
264:デフォルトの名無しさん
07/05/19 03:42:50
>>260
無闇には勧めないがGACに登録。
265:デフォルトの名無しさん
07/05/19 04:15:46
無闇じゃなくても薦めるなそんなの。
266:デフォルトの名無しさん
07/05/19 20:25:46
初心者でまだテストコードも書いてないんですが、方針を教えてください
Class A
Inherits Base
Function b() as string
・・・・
End Function
End Class
Class Base
Function a() as string
return b
End function
Function b() as string
・・・・
End Function
End Class
となっているときに、継承クラスであるAの関数aを呼び出したとき
aはベースクラスbase.bを呼び出しますよね?
このとき継承クラスAがオーバーライドした関数bを呼び出させる
方法はありますか?
よろしくお願いします。
267:266
07/05/19 20:31:13
追記
Base.a()は非常に複雑だけど一部だけ変更可能にしないと機能しない関数です。
そこでその部分を関数bで処理します。
ただし、Baseクラスの関数bにもベーシックな処理を記述しておきたいのです。
よろしくお願いします。
言語の基本仕様にないとしたらデザインパターンを使うのでしょうか?
そのパターンの名前とか教えていただけるとありがたいです。
268:デフォルトの名無しさん
07/05/19 20:37:45
普通にbを仮想関数にすりゃいいんでないの?
269:266
07/05/19 20:47:17
>>268
仮想関数ですね・・・調べてみます!
とっかかりがわかんなくてデリゲートとかわけのわかんないのを調べてました。
base.bの宣言をOverridableにせよということですね?
ありがとうございました!!!
270:デフォルトの名無しさん
07/05/19 21:06:35
>>266
あのさあ、学べば分かることを学びもせず、
試せばわかることを試しもせず、そんな態度じゃどうにもならんと思うぞ。
あと余計なお世話かもしれないが、268には君が質問したいと思っていることが
恐らく伝わってないと思われる。
そしてそれは268の読解力のせいというより、お前さんの文章の表現が酷すぎるからだと思う。
まあ俺自身も君の質問の意図を勘違いしている可能性は大いにあるが、一応質問に回答するけど
オーバーライドされたメソッドというのは、たとえその呼び出しがベースクラスに
記述してあるとしても、元のベースクラスのメソッドではなく、オーバーライドされた方の
メソッドが呼び出されるんだよ。
MeとMyClassとMybaseの違いとか、あとShadowsとかの意味を調べた方がよさそうだね。
271:268
07/05/19 21:11:27
ん?外してたか?
よくわかんね
272:266
07/05/19 23:18:20
>>270
ああ!そうなんですか。
勘違いしてました。
確かにこれからテストコード書くんですが、そもそもどういう仕組みになるのか
考えていたもので、ありがとうございました。
273:デフォルトの名無しさん
07/05/20 07:36:18
ActiveReportを使って、ユーザーが任意の列数を選択し、印刷プレビューに表示させる
という内容のプログラムを作成中なのですが
列数が10を超えた場合、次のページに残りの列を表示、というのは可能なのでしょうか。
ActiveReport、もしくなそれに似たようなものを使った経験のある方、よろしくお願いします。
※ActiveReportの設計は私ではなく別の人が行っております。列を格納する部分は10個になっていました。
274:デフォルトの名無しさん
07/05/20 12:22:05
>>273
ActiveReportsについてるサンプルくらい見ろ
あとメソッドやプロパティ一覧も
余裕で出来るということが載ってる
275:デフォルトの名無しさん
07/05/20 12:26:33
またプチ北方謙三が偉そうに
見ろ、だってさ。
こういうの自我肥大っていうんじゃないの?w
276:デフォルトの名無しさん
07/05/20 12:30:33
>>275
>>273
おまえよっぽど必死なんなだなぁ・・・・
がんばれよ〜
277:デフォルトの名無しさん
07/05/20 13:40:20
>>275は私じゃないけど、サンプル見てみることにします
入社一年目でこれやっといてーって丸投げされたんでなにがなんやら
278:デフォルトの名無しさん
07/05/20 13:50:30
>>277
調べて努力すりゃ1年目でもやればできる範囲だと思ったから
丸投げしてると思うよ?
コツコツ調べりゃきっとできるし、出来たとき「思えば簡単だったな」 て思えると思うよ
279:デフォルトの名無しさん
07/05/20 22:46:38
→キーが押下されたら、PictureBoxをウィンドウの隅にぶつかるまで右方向に無限移動させ
ウィンドウの隅にぶつかったら逆走させるのって如何すればいいんでしょうか?
280:デフォルトの名無しさん
07/05/20 22:49:06
そのままそれをPgにすりゃいいだけだと思うんだが…
どこがわからないんだ?
判定?
それともすべて?
281:デフォルトの名無しさん
07/05/20 22:50:20
プログラムをPGって略すのは珍しいな
282:デフォルトの名無しさん
07/05/20 22:50:49
>>279
悪いこと言わない、プログラミングなんぞに手を出すのはやめとけ。
根本的に向いてないよお前さんには
283:デフォルトの名無しさん
07/05/20 22:52:59
>>280
そもそもVB.NETという概念からして良く解ってないんですが・・・
正直、まるで何一つ解ってません・・・
' 今のコード
Public Class km
Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Left
Timer1.Enabled = True
Case Keys.Right
Timer2.Enabled = True
End Select
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
PictureBox1.Left -= 6
End Sub
Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
PictureBox1.Left += 6
End Sub
End Class
284:デフォルトの名無しさん
07/05/20 23:06:24
おまwwwww
これ右移動しながら左キー押したらどうなるんだよwwwwwwww
悪いことは言わないから まず左右キー押しっぱでそれぞれの方向に動いてはじっこまで来たらとまるプログラムかいてみ?
まずはそっからだ
285:デフォルトの名無しさん
07/05/20 23:08:36
>>284
こんな感じでしょうか?
Public Class km
Private Sub km_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Left
If PictureBox1.Left > 0 Then
PictureBox1.Left -= 6
End If
Case Keys.Right
If PictureBox1.Left + PictureBox1.Width < Me.ClientSize.Width Then
PictureBox1.Left += 6
End If
End Select
End Sub
End Class
286:デフォルトの名無しさん
07/05/20 23:11:48
まーた始まった
287:デフォルトの名無しさん
07/05/20 23:12:21
こんな感じでしょうかじゃないよ。
試してどこがどうだめだったか報告しなさいよね
288:デフォルトの名無しさん
07/05/20 23:16:49
まぁ、とりあえずそれはめり込む可能性が高いなwwwww
289:デフォルトの名無しさん
07/05/20 23:26:19
>>287
取り敢えず、動かしてみた感じ
>>284で言われたものは出来たような気がします
>>288
やっぱり、移動量が6だとめり込みますよね・・・(ウィンドウサイズが6の倍数ならともかく)
移動量を5にして、めり込まないようにしてみました
290:デフォルトの名無しさん
07/05/20 23:32:03
・・・・・あのぉ・・・・まぁ・・・いいけどさ・・
もう面倒くさいからざっくりサンプル書いとくわ
スペースでストップな
この板的に叩かれそうなソースだがまぁ こんなバカもいるってことで
とりあえずタイマをつかってるみたいだからそれは残しといてみた
以下ソース
Private Enum Vector
Right
Left
None
End Enum
Private Const _MovePixcel As Integer = 1
Private _Vector As Vector = Vector.None
291:デフォルトの名無しさん
07/05/20 23:33:03
TRY-FINALLYはめんどくさいからそこに書いただけ
ほんとはちゃんとしたほうがいい気がする
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Try
Select Case e.KeyCode
Case Keys.Right
_Vector = Vector.Right
Case Keys.Left
_Vector = Vector.Left
Case Keys.Space
'とまる
_Vector = Vector.None
End Select
Finally
If _Vector = Vector.None Then
Me.Timer1.Stop()
Else
Me.Timer1.Start()
End If
End Try
End Sub
292:デフォルトの名無しさん
07/05/20 23:33:57
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Select Case _Vector
Case Vector.Right
Dim TempRight As Integer = Me.PictureBox1.Left + Me.PictureBox1.Width + _MovePixcel
If TempRight < Me.Panel1.Width Then
Me.PictureBox1.Left += _MovePixcel
Else
_Vector = Vector.Left
End If
Return
Case Vector.Left
If 0 < Me.PictureBox1.Left - _MovePixcel Then
Me.PictureBox1.Left -= _MovePixcel
Else
_Vector = Vector.Right
End If
Return
End Select
End Sub
忘れてたけど
フォームにタイマ・パネル・ピクチャボックスおいてな
293:デフォルトの名無しさん
07/05/20 23:39:11
自分にレス番を打つと専ブラ使いにはうれしいインデント。
SELECT CASE True
CASE 1 = 2
CASE 1 = 1
END SELECT
>>293
294:デフォルトの名無しさん
07/05/21 06:17:31
列挙体はまだ高度では?
つぅか、>>284のつっこみが分かってないよな。
フォームにのめりこんでもいいから、せめて片方のタイマーを止めろよ。
295:290
07/05/21 09:02:10
>>293
まぁとりあえずソースみてこんなもんかな?ってのを判ってもらえる事を期待してみた(;´Д`)
多分右も左もわからないっぽいので 余計なお世話だったか・・・
まぁ、列挙タイは確かに不必要であんなるBoolのフラグのが良かった希ガス
296:デフォルトの名無しさん
07/05/21 16:47:21
>>290
なんというか、予防線はってるのがすごく痛い
297:デフォルトの名無しさん
07/05/21 16:49:41
マイク入力を録音をするアプリをつくろうと考えてるんですが、何か参考になるサイトや書籍を知りませんか?
298:デフォルトの名無しさん
07/05/21 17:28:22
VB.netでモバイル端末用アプリを作成し、
アイコンを設定して端末へコピーし、端末側の
ファイルエクスプローラexeを確認すると
設定したアイコンで表示されませんでした。
PC側では設定したアイコンで表示されます。
何か設定があるのでしょうか?
299:デフォルトの名無しさん
07/05/22 02:02:15
アプリ作成後にアイコン設定ってもしかしてアンタ…
300:デフォルトの名無しさん
07/05/22 06:14:19
>>298
おまえファミコン.icoもしらねーのかよ初心者め
301:298
07/05/22 09:04:20
>アプリ作成後にアイコン設定ってもしかしてアンタ…
書き方が変だったようです。
アイコンの設定はもちろんアプリケーションの
プロパティ画面から設定してからEXEを作成しています。
ちなみにC#で作ったサンプルPGに同じアイコンを
設定した場合はPDAで正しくアイコンが表示されますが
VB.NETではだめでした。
302:デフォルトの名無しさん
07/05/22 18:40:02
>>301
C#でアイコン設定したらOKで、VB.NETではNGだったってこと?
ちなみにVB.NETで作成した場合、モバイル端末で表示されるアイコンはどんなの?
303:デフォルトの名無しさん
07/05/22 18:46:28
まあ99%なにかの勘違いだなw
同じように作ったC#はOKでVBだとNGなんてまずありえん。
304:デフォルトの名無しさん
07/05/22 21:47:46
継承を多用すると遅くなるって事ありますか?
305:デフォルトの名無しさん
07/05/22 21:50:39
そりゃあることもあるだろ
まあおまいさんが書くコードに影響がある程じゃないさ
306:デフォルトの名無しさん
07/05/22 22:08:07
>>305
ありがとうです。
ちなみに、至るところで、継承してるプロジェクトに就業しました。
インスタンスも至るところでされてます。
画面を開くのに40秒近くかかります。
継承しすぎて、何をどこでやってるか追うのに大変です。
継承遷移図やソースの名前からでは判断できません。
307:デフォルトの名無しさん
07/05/22 22:18:45
>>306
もしかして継承フォームのことをいってる?
あれは確かに重くなりそうな気がする。
308:デフォルトの名無しさん
07/05/22 22:30:41
>>307
言い方はわかりませんが、
画面そのものを継承していますね。
309:デフォルトの名無しさん
07/05/22 22:35:21
継承そのものはコストは無視して構わない。
例えば画面なら、コントロールを山程載せてたり起動時にDBからデータもってきてたりとかその辺。
310:デフォルトの名無しさん
07/05/22 22:37:46
いや307の言うとおり継承フォームとか複合コントロールの継承なんかは
普通のクラスの継承とはちょっと事情が違うと思う。
普通のクラスの継承のコストなんてないと思っていいのは同意するけど
311:デフォルトの名無しさん
07/05/22 22:49:52
ん?一人レベルが低くい質、て申し訳ないですが、
継承したら早くなるのですか?
コーディングスピードていうか、共通箇所がガッツリ出来るのは理解できるのですが。
312:デフォルトの名無しさん
07/05/22 22:55:25
>>311
日本語でおk
313:デフォルトの名無しさん
07/05/22 22:57:38
>>311
おk!!
処理の速度・画面の起動等のユーザサイドから見て、
継承を使用した場合、しなかった場合よりも早く感じるものなの?
作り手からみて、楽になる部分が多いのはわかります。
314:デフォルトの名無しさん
07/05/22 23:03:17
実行時にはほとんどまたは全く差はない。
差が出るのはIDEの動作とか、コンパイルにかかる時間とかそんなところ。
GUI関係の継承だとIDEの動作が重くなる可能性はある。
315:デフォルトの名無しさん
07/05/23 01:56:16
そんなこんなで画面がでるまで40秒かかる>>306に乾杯
316:デフォルトの名無しさん
07/05/23 09:11:12
むしろ
>>306の基盤作った奴は起動にそれだけ時間かかってなんとも思わなかったのか・・・
それのほうが問題だよな
317:298
07/05/23 09:12:49
メーカーから届いた端末複数でインストールしました。
そのうちいくつかが通常のexeのアイコンでその他が
設定したアイコンで表示されました。
メーカーが提供しているDLLの不具合の可能性が出てきましたので
しばらく様子を見ようと思います。
318:デフォルトの名無しさん
07/05/23 13:13:43
質問させてください。
LAN上でSQL Serverをインストールしているサーバの検出をVB.NET(2005)で行う方法はありますでしょうか。
ありましたら、教えてください。
319:デフォルトの名無しさん
07/05/23 13:51:48
昔はSQLDMOつかってたな・・・
今はもしかしたらSQLクライアントかなんかの名前空間の中にラップされた機能あるかもしれんが。。。
320:318
07/05/23 16:25:37
>319
どうもです。
SQLDMOをヒントに
URLリンク(www.csharphelp.com)
にたどり着き、ここにあるC#のサンプルをVBに書き換えてうまいこといきました。
多謝多謝。
321:デフォルトの名無しさん
07/05/23 17:18:36
>318
既に解決したようですが、参考までに。
ADO.NET 2.0ならばSqlDataSourceEnumeratorクラスなるものがあるようです。
SQL Server のインスタンスの列挙
URLリンク(msdn2.microsoft.com)(VS.80).aspx
322:318
07/05/23 17:48:50
>321
ありがとうございます。
自分が見つけたサンプルより、そちらのほうがいけそうです。
>320で貼ったサンプルについては、
ListAvailableSQLServersというメソッドでサーバ名取得していたおですが、
BooksOnlineに将来削除されるメソッドだとありましたので…。
323:デフォルトの名無しさん
07/05/23 19:20:55
諸事情により携帯から失礼します。
.netでのINIファイル読み込みの時の質問なのですが、
読み込む時に文字数制限とうってありますか?(128バイトまでとか)
開発環境はVS2003です。
よろしくおねがいします。
324:デフォルトの名無しさん
07/05/23 19:23:22
よろしくおねがいする前に、まず自分で試そうよお馬鹿さん。
325:デフォルトの名無しさん
07/05/23 19:32:28
試した結果削られてしまって、
調べても分からなかったので質問してるのですが…
326:デフォルトの名無しさん
07/05/23 19:36:57
見え透いたこと言わない方がいいよ。
絶対試してもなければ何も調べてもないってw
っていうか調べてその体たらくならとっとと足洗ったほうが吉だわな。
327:デフォルトの名無しさん
07/05/23 19:45:06
本当に試しましたし、調べもしました。
ですが、どうしても取って来れなかったので質問してるんです…。
見え透いた事といいますが、こんな風に言われてしまうのならば、
もうここには来ていませんし、試していないのならば貴方に愚弄されるのを分かっていて
試さずにまた聞いたりしませんよ…。
328:デフォルトの名無しさん
07/05/23 19:57:27
意外と設定したバッファ越えて読み込んでたりなwwwww
まぁ、ありえんか・・・
329:デフォルトの名無しさん
07/05/23 20:02:59
INIファイルの有効サイズを超えてたりしてwwwww
まぁ、ありえんか・・・
330:デフォルトの名無しさん
07/05/23 20:31:06
iniだろうがdatだろうがファイル読み込みはファイル読み込みでしょうが。
どんな制限だよ128バイトって
いまどきこのレスだって142バイトはあるっての
331:デフォルトの名無しさん
07/05/23 20:33:52
試すっていうのはね、
ファイルを読み込むだけのコードでテストしてみることをいうんだよ?
それで128バイト制限が存在するかどうか分かるでしょ?
つまり試してないってこったよお馬鹿さん。
332:デフォルトの名無しさん
07/05/23 20:41:09
>>331
スレが汚れるから死ね。
333:デフォルトの名無しさん
07/05/23 20:52:09
iniファイル読むのにWin32Apiとか使ってて、最初にバッファの確保処理してないんじゃね?
334:デフォルトの名無しさん
07/05/23 21:26:06
>>333
あ、それかもしれない・・・
ちょっと後でいじって見ます。アドバイスありがとうございました。
335:デフォルトの名無しさん
07/05/23 21:27:14
質問です。
C言語でDLLを作り、VBからそのDLLの関数を呼び出して使いたいのですが、
下のプログラムをビルドして実行するとLabel1には6と表示されます。
どうやらforループが2回で終わっているようですが、なぜそうなるのかが分かりません。
すみませんがよろしくお願いいたします。
336:デフォルトの名無しさん
07/05/23 21:29:25
ソースは以下の通りです。
Option Explicit On
Public Class Form1
Public Declare Function Sum Lib "C:\Sum.dll" (ByRef n As Long, ByRef a As Long) As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim n, s As Long
Dim aa(10) As Long
aa(0) = 1
aa(1) = 5
aa(2) = 4
aa(3) = 9
n = 4
s = Sum(n, aa(0))
Label1.Text = s
End Sub
End Class
337:デフォルトの名無しさん
07/05/23 21:30:40
__declspec(dllexport) long __stdcall Sum(long* n,long* a){
long sum,i;
sum=0;
for(i=0 ; i< *n ; i++){
sum=sum+a[i];
}
return(sum);
}
DLLを作るのにはVC++6.0、VBは2005 ExpressEditionを使っています。
338:デフォルトの名無しさん
07/05/23 21:35:20
>>337
取りあえず Long と long を調べてこい
339:デフォルトの名無しさん
07/05/23 22:05:59
そのコードヤバくね?
340:デフォルトの名無しさん
07/05/23 22:22:40
テストだとしても・・・・
VB側でLong使うケースは…・
341:デフォルトの名無しさん
07/05/23 22:26:25
えーと、よくわからないけど
これ貼っとけばいいかな?
プラットフォーム呼び出しのデータ型
URLリンク(msdn2.microsoft.com)
342:デフォルトの名無しさん
07/05/24 00:25:10
横からですが
VBで変数宣言するときにlong型にしちゃまずいんですか?
longってintの2倍のサイズの要領の数値型ですよね
343:デフォルトの名無しさん
07/05/24 00:52:27
>>342
VB6からいろいろ変わってしまったのだよん。
VB6のIntegerは16bit長、Longは32bit長だけど
VB.NETからはIntegerが32bit長で、Longは64bit長、Shortが16bit長。
VC6やらVC2005でDLLを作った場合、.NETのLongは__int64かlong long型に該当する。
344:デフォルトの名無しさん
07/05/24 01:04:25
なるほど・・・
だとしたら私の場合はintで宣言したらオーバーフロー?がおきたのでlongにしたので
このままで問題ないですよね?
素人なのでオーバーフローという意味がよく分かってないですが・・とりあえずint型だと容量が足りないみたいなエラーが起きました
345:デフォルトの名無しさん
07/05/24 01:11:11
各数値型で扱える範囲と、そのとき扱う必要がある数値の範囲くらいは把握しとこうぜ
346:デフォルトの名無しさん
07/05/24 01:13:12
つーかdllの関数のシグニチャと合わせないとためだろwwww
347:デフォルトの名無しさん
07/05/24 01:54:22
だったらc側でlongじゃ足りんだろうがw
348:デフォルトの名無しさん
07/05/24 01:56:45
アドレス渡しってどうなん?
349:デフォルトの名無しさん
07/05/24 02:00:26
どうとは?
350:デフォルトの名無しさん
07/05/24 02:23:47
なにが
>このままで問題ないですよね?
だ!!!!!!!
問題あるから質問スレに来てるんだろが!!!!!!
351:デフォルトの名無しさん
07/05/24 02:30:06
>>350
こたえる気がないのなら消えろよ・・・。
352:デフォルトの名無しさん
07/05/24 02:35:31
>>351は>>335が書きました
353:デフォルトの名無しさん
07/05/24 14:08:51
typedef くらいしとけ
354:335
07/05/24 15:42:21
皆様ありがとうございます。
今大学にいないので試す事が出来ないのですが、
夕方登校してから変数のビット長の事を考え直してもう一度やってみます。
あと、>>351は私ではありません念の為。
355:デフォルトの名無しさん
07/05/24 22:15:23
やる気があるんだったら家のにExpressくらい入れて試せよ 学生さんw
356:デフォルトの名無しさん
07/05/24 23:43:36
>学生さんw
なんで最後にwがつくのかわからんが、無職のお前よりましだと思うよ。
357:342
07/05/25 00:38:37
>>350
>問題があるからここに〜
intにしているときとは違いlongにするとコンパイル時にエラーはでませんでしたが。
ここにいる理由は、他人の質問事項でも参考になるから毎日覗いていて
>>338-340のレスが気になったら質問したまでだけど。
358:デフォルトの名無しさん
07/05/25 00:43:18
コンパイル時じゃなくて実行時だった。
359:デフォルトの名無しさん
07/05/25 01:24:34
>>357
まぁ出なくなったんならいいっちゃいいのかも知れませんが、それで飯食うつもりでしたら
何でオーバーフローしたのか?
それは予想された動作か?
違うならどこで変数に異常な値が入ったのか?
くらいは最低限把握しておいたほうが良さそうな気がしますよ?
>>346
>>335-337 はシグニチャとかそれ以前に
s = Sum(n, aa(0))
なんてコードかいてる時点でVB.NETについて根本的に勘違いしてるっぽいんですけどw
360:デフォルトの名無しさん
07/05/25 02:06:47
>>356
お前みたいなレベルの負け組と一緒にするなカス野郎
361:デフォルトの名無しさん
07/05/25 15:14:29
ちょっとしたブラウザ(IE使う)を作ってみたいです
まだソフトも買ってないので、日曜日に買いに行きます
入門書もあわせて買う予定です
お勧めの本あれば教えてください
362:デフォルトの名無しさん
07/05/25 15:31:36
とりあえず、ExpressEdition使ってみたら
363:デフォルトの名無しさん
07/05/25 17:35:05
2005で質問です。
ピクチャーボックス・ラベルをFill・Bottomとして貼り付けたユーザーコントロールがあります。
このコントロールのMouseMove/MouseLeave/MouseEnterイベントは コントロールが上に存在している為発生しない状況です。
これらのイベントが簡単に動作する方法はないでしょうか?
やはり、各コントロールのイベントを取ってきてガリガリいじって渡したりしなければいけないんでしょうか?
364:デフォルトの名無しさん
07/05/25 17:46:33
内部で各コントロールにイベントつけといて
ユーザーコントロールのOnMouseMove等を呼べば?
365:363
07/05/25 18:18:52
>>364
レスありがとうございます。
とりあえずMouseMoveはその方法で実装してみました。
各コントロールのマウスMoveイベントでユーザーコントロール内の座標に変換してユーザーコントロールのMouseMoveイベントを呼び出すようにしています。
これでMouseMoveは実装できたのですが、今度はMouseEnter MouseLeaveイベントを実装する手段が不明というか、うまいこと思いつかないです
366:363
07/05/25 18:22:21
連投失礼します。
MouseEnterはPrivateなフラグをひとつ持って、内部の各コントロールのEnterイベントで
フラグがOFFならユーザーコントロールのEnterイベントを発生→フラグON
フラグONならなにもしない
という力技実装を今思いついてやってみました。
しかし やっぱりMouseLeaveが難しいです・・・
367:デフォルトの名無しさん
07/05/25 21:01:44
>>363
希望するのはこういう動作?
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
For Each c As Control In Me.Controls
AddHandler c.MouseMove, AddressOf Chileds_MouseMove
AddHandler c.MouseLeave, AddressOf Chileds_MouseLeave
Next
End Sub
Private Sub Chileds_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim pt As Point = MousePositionByClientCoordinate()
Dim ev As New MouseEventArgs(e.Button, e.Clicks, pt.X, pt.Y, e.Delta)
MyClass.OnMouseEnter(New EventArgs)
Me.OnMouseMove(ev)
End Sub
Private Sub Chileds_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs)
MyClass.OnMouseLeave(New EventArgs)
End Sub
Private Function MousePositionByClientCoordinate() As Point
Return Me.PointToClient(Control.MousePosition)
End Function
Private Function IsMouseOnMe() As Boolean
Dim pt As Point = MousePositionByClientCoordinate()
Return Me.ClientRectangle.Contains(pt)
End Function
368:デフォルトの名無しさん
07/05/25 21:03:25
Private mMouseAlreadyEnter As Boolean = False
Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
If mMouseAlreadyEnter = False Then
mMouseAlreadyEnter = True
MyBase.OnMouseEnter(e)
End If
End Sub
Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
If IsMouseOnMe() = False Then
mMouseAlreadyEnter = False
MyBase.OnMouseLeave(e)
End If
End Sub
369:363
07/05/25 21:38:46
>>367-368
帰宅してたのでレス遅れてすみません
ちょっとご飯食べて試してみます
370:363
07/05/25 21:49:27
>>366
やっぱり気になって先にソース見てました。
正に自分が欲していた動作です。
しかも超汎用性があるようにサンプルまで頂けて・・・
ありがとうございます!!!!!
なんか胸のつかえが取れました!!
371:デフォルトの名無しさん
07/05/25 22:31:54
いや、サンプルっていうかUserControlで>>363に書いてあるような動作を実装するような
コードを書いてみただけだけどね。
なんにしろ希望の通りの動作のようで何より。
しかし、Chiledsって素で間違えたよ恥ずかしいw
中学英語も怪しくなってきているとは
372:デフォルトの名無しさん
07/05/25 23:29:44
C言語では、static int a[3]={1,2,3}; や、 static char b[]="abc";
のように、初期化できるのですが、VB や VBA ではどうすればよいのですか、
N88 basic では、確か、DATA 文があって、できたと記憶しているのですが
373:デフォルトの名無しさん
07/05/26 00:33:09
Dim a() As Integer = {1, 2, 3}
374:デフォルトの名無しさん
07/05/26 02:01:15
s = Sum(n, aa(0))
これはどこがおかしいんでしょうか?
375:デフォルトの名無しさん
07/05/26 02:06:46
>>374
エスパーの俺にも君の質問の意味がわかりません。
376:デフォルトの名無しさん
07/05/26 02:09:11
配列へのポインタと渡そうとして
先頭要素の値(への参照)を渡している
いろんな言語の低レベルな知識がごっちゃになってるという最悪の状況
377:デフォルトの名無しさん
07/05/26 02:14:34
s as intger =0
n as intger =1
aa as string =123456
s = n + aa(0)
だとおk?
一部省略
378:デフォルトの名無しさん
07/05/26 02:16:18
aa(0)をint(aa(0))に修正↑
379:359
07/05/26 02:20:08
>>374
大体、Integer型とInteger型の配列は全くの別物ですから。IntegerはInt32構造体、Integer()はArrayクラスが本来の姿です。
従って配列を渡したかったらちゃんとそう書かないとだめです。
Function(ByVal n As Integer, ByVal aa As Integer())
見たいな感じで。
あとVB.NETだと参照型は値渡しでちゃんと参照が渡されるから、配列渡す時は無闇にByRef使うとえらいことになります。
そもそも、アンマネージDllの呼び出し(PInvokeとか呼ばれてますけど)はマーシャリングという処理が必要で結構奥が深いですよ?
380:デフォルトの名無しさん
07/05/26 02:21:52
でたよ・・・
プログラマ特有の頭でっかち
381:デフォルトの名無しさん
07/05/26 02:23:30
>>380
頭を落としてきた人は黙ってて下さい
382:359
07/05/26 02:25:56
>>374
あと、俺みたいに前のレス番名乗らないから>>375みたいな突込みがくるわけで。
この板にはID無いから自分が前に出した質問があるときはちゃんと名前欄に書きましょう。
>>380
どうせ俺は21の高卒プログラマですよ・・・
383:デフォルトの名無しさん
07/05/26 02:34:30
何か勘違いしているようだが>>335でもないし>>347でもないぞ?
384:デフォルトの名無しさん
07/05/26 02:49:26
>>383
本当だ・・・>>357だと思ってたんだけど>>357はちゃんとレス番書いてあるorz
まぁちゃんと書いても騙りに沸かれたらそれまでなんですけどねw
385:デフォルトの名無しさん
07/05/26 02:49:56
>>382
まぁそういうな
つうか、ここでは年齢も学歴も関係ないだろ
そうやって思ってもないのに自分で自分を卑下してるフリしてるやつはムカつく
386:359
07/05/26 03:18:18
>>385
まぁ実際普段仕事する分には学歴なんざ糞の役にも立たないんでしょうが、場数も学歴もないと転職キツくありません?
ちなみに俺が知る限りウチの会社のプログラマに大卒は居ませんw
つーかそういう話題はマ板逝けって言われそうなんで>>377-378の件
なんか文法エラーが混じってるんで一番好意的に解釈した結果になりますが、
aa="123456"だとすると、CInt(aa(0))の結果は'1'のキャラクターコード=&H21です。
したがって
s = n + CInt(aa(0)) = 1 + &H21 = 34
になりますけど、それは意図した動作ですか?
そもそも>>374≠>>357だと冗談抜きでエスパーでもないと無理w
387:386
07/05/26 03:24:50
間違えたorz
CharからIntegerって普通には変換できないじゃんw
388:デフォルトの名無しさん
07/05/26 03:28:13
>>386
お前の知る世界が狭いだけ
ヘッドハントなんざいくらでもある
そこに学歴は関係ないからな
つうか・・・・落ち着いて書きこめよ…・
デバッグ忘れでリリースしそうなやつだな・・お前…
389:デフォルトの名無しさん
07/05/26 07:46:16
VBでSumって組み込みであるの?
390:デフォルトの名無しさん
07/05/26 11:55:06
>>388
なんか背伸びしてる感がありありだよ
ヘッドハントってお前さんどんな「生き馬の目を抜く」世界にいるんだよw
そりゃあるかないか、といえば確かに「ある」が、それはお前さんの世界じゃないだろうに。
391:デフォルトの名無しさん
07/05/26 17:00:20
変数の値ではなく、変数名を文字列に変換することはできますか?
またその逆はできますか?
趣味でプログラミングを始めた初心者ですが、どなたか教えていただけませんでしょうかm(_ _)m
392:デフォルトの名無しさん
07/05/26 17:51:43
できるかできないか、で言えば可能だが、初心者にははっきり言って無理。
初心者にはもっと他にやることあるだろ。
393:デフォルトの名無しさん
07/05/26 21:45:29
>>391
ローカル変数は無理
クラスや構造体のフィールドなら可能
言葉の意味がわからないなら諦めろ
394:デフォルトの名無しさん
07/05/26 23:28:26
そんなの自分でソースをパースすればいいんだよ。なんでもできる。
395:デフォルトの名無しさん
07/05/26 23:47:05
WebBrowser で Excelファイルを表示したとき、
VB6 の頃は Excel のツールボタン列がいくらでも選択できて
表示できたのですが、VB2005 になってから表示されないようなのですが、
もし表示するための方法等がありましたら教えてください。
よろしくお願いします。
396:デフォルトの名無しさん
07/05/28 06:11:59
VB.NET→VB2005への移行は簡単ですか?
VB6→VB.NETへの移行とどちらが簡単ですか?
そろそろ.NET Framework1.1のサポートが終了と聞いたので。
397:デフォルトの名無しさん
07/05/28 09:32:10
>>396
そりゃ 過去の.NET→2005の.NETにきまってるじゃないか
基本的な部分は変わってないんだから
398:デフォルトの名無しさん
07/05/28 09:53:51
VB2005で現在のカーソル位置を行数で知りたいんですけど、便利な方法ありますか?
確かExcelVBAでは画面の上のほうに出てたと思うんですが・・・
399:デフォルトの名無しさん
07/05/28 10:28:51
何のカーソルの位置を何の行数で知りたいの
400:デフォルトの名無しさん
07/05/28 12:33:59
399は優しいのな。
俺は398みたいなおタンチンは相手にする気になれん。
というか、どうせこんな人間相手に自分の希望を伝えることすらできない人間が
満足なコードなんて書けるはずがないと思うんだが。
401:398
07/05/28 13:57:34
コードエディタのカーソル位置です。
エラーがあったときデザイナを開くと「XX行目にエラーがあります」みたいなメッセージが
出るのですが、その行数に飛びたいのです。
確か空行飛ばしてカウントしてたと思います。今確認しようとしてるんですが
エラーは出ても「XX行目に…」というメッセージが出ない・・・
402:デフォルトの名無しさん
07/05/28 14:13:20
普通に標準機能じゃ満足できないのか?
403:398
07/05/28 14:32:51
標準って、「エラー一覧」ウィンドウに出てるエラーメッセージをダブルクリックして飛ぶって意味ですか?
それができなかった時があったと思うんですけど…
ていうか再現できない。何でかなー
404:デフォルトの名無しさん
07/05/28 15:44:50
アホをVB.NETスレから出すなよ……
ふらっとC♯, C#(初心者用) Part16
スレリンク(tech板:257番)
257 名前:デフォルトの名無しさん[] 投稿日:2007/05/28(月) 14:47:42
すみません、VB.NET の方で訊いてみたのですがご指導いただけません
でしたのでこちらでも訊かせてください。すみません。
WebBrowser で Excelファイルを表示したとき、
VB6 の頃は Excel のツールボタン列がいくらでも選択できて
表示できたのですが、VB2005 になってから表示されないようなのですが、
もし表示するための方法等がありましたら教えてください。
よろしくお願いします。
405:デフォルトの名無しさん
07/05/28 16:18:34
いや・・・これ・・・VB.NET関係無い気が・・・
406:デフォルトの名無しさん
07/05/28 16:45:46
>>405
中のソースをVB.NETで書いてたんじゃね?
407:デフォルトの名無しさん
07/05/28 17:02:13
IEかOfficeスレへ逝くべきかな
しかし、俺の環境じゃ普通に表示できたぞ
プログラミング勉強するよりWindowsの基本操作勉強したほうがいいんじゃねぇか
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5110日前に更新/282 KB
担当:undef