1 名前:d mailto:age [2008/03/30(日) 09:01:59 ] このスレッドはVBについて、 他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 VB使いが優しくコメントを返しますが、 お礼はVBの布教はしなくてよいので、初心者の救済をお願いします 前スレ くだすれVB6.0以前(超初心者向け) pc11.2ch.net/test/read.cgi/tech/1165574205/
684 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:07:49 ] イベント処理での質問です。 vb2008 webページの作成をしています。 コンボボックスから、氏名を選択したら、別のテキストにIDを表示するのですが。 コンボボックスから選択しただけじゃイベント処理は発生しませんか? SelectedIndexChangedとかTextChangedとか試してるのですが上手くいきません。
685 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:30:06 ] >>684 スレ違いです。
686 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:47:20 ] >>682 持てません。 クラスメンバの意味わかって言ってる?w
687 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:53:22 ] vbのwinsockコントロールで、メッセージを送ってきた相手のIPアドレスって取得できますか? 最低でもLANかWANかだけでもわからないでしょうか?
688 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:57:30 ] もうすこし詳しく書かないと、やりたい事が伝わってこないぞ
689 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:02:48 ] 詳しく書くと、たとえば TCPでlistenしてるところにconnectしてきた相手のIPアドレスを取得したいんです。 IPアドレスがわからなくても、最低限、そのconnectメッセージがLAN経由かWAN経由かの接続だけでも取得したいのです。
690 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:10:47 ] ぜんぜん詳しくなってないが、相手のIPはわかるから一度プログラム作ってみなよ
691 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:32:21 ] >>690 見直してみたら、てっきりRemoteHostしかないと思ったらRemoteHostIPの存在に気づきました。 すいません、お手数をおかけしました。
692 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:41:06 ] 質問ですが、標準のデータグリッドでマウスホイール回転時にスクロールさせる方法って 何が考えられますか?
693 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:20:11 ] ホイールスクロールを受け取って自力で動かす
694 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:26:17 ] support.microsoft.com/kb/179398/ja こんな感じで
695 名前:デフォルトの名無しさん [2009/03/05(木) 01:50:23 ] アクセス操作について教えてください。 エクセルのCellsみたいに列、行指定はできませんか?
696 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:09:37 ] もしかして: VBA?
697 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:20:33 ] つーか、DBってものを解ってないな 利口ならDBについて3日勉強して出直せ 馬鹿ならDBについて3年勉強して出直せ
698 名前:692 mailto:sage [2009/03/05(木) 11:31:12 ] ありがとうございます。 ホイールイベント時の処理でスクロールさせるしかないということですね。 イベントの受け取り方などもう少し調べてみようと思います。
699 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:57:12 ] >695 ADOならRecordsetオブジェクトとか調べて見るといいかも
700 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 17:35:54 ] VB5.0で作成されたアプリってVistaでも動く?
701 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:03:33 ] 答えになってないが VB6は何とか動いたけどODBC関連がだめだめだったね 使い物にならないぐらい遅い Win7では動かなくなるソフト続出だとおもう
702 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 18:04:59 ] VB5 アプリはものによっては動く
703 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:06:49 ] リストボックスをマウスホイールでスクロールさせた時に リアルタイムでリストボックスのTopIndexを取得したいのですが リストボックスのScrollイベントが動かないので私のスキルでは 八方塞がりです。方法をご教授頂けないでしょうか?
704 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:10:51 ] >>703 サブクラス化 ググればいくらでもサンプルは出てくる それでも解らなかったら諦めるよろし
705 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:15:50 ] C#やVB.NETなどで作れという神託だよ
706 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:38:24 ] >>704 ありがとうございます。 私の探し方が悪いんでしょう。 なかなか見つけられなくてココに来た次第です 諦めるわけには行かないので調べなおします。 >>705 業務で使うのでVB6を使うしかありません。 10年以上稼動する機器なんてざらにあるので・・・ こちらがリファクタリングしたくても 機能も仕様も変わらないのにお金出すところなんてありませんから
707 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:30:07 ] 自力で動かすと、ちょっと上でも方法込みで出てるし。
708 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:32:36 ] 業務で使うのに、サポート切れてるツールを使おう、ってのがわからん。 不具合があったって、MS は知らん顔だよ?
709 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:34:13 ] MSのサポートなんか受けたことないよ
710 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:38:51 ] >>706 厳密にTopIndexが一つ変化するごとに確実にイベントが欲しい、 とかで無ければタイマ使ってポーリングしたら? こんな感じのクラスを作って検証してみたが、悪くないように思うけど。 [ListBoxWatcher Class] Private WithEvents mListBox As ListBox Private WithEvents mTimer As Timer Private mTopIndex As Integer Public Event TopIndexChanged() Public Property Set ListBox(lb As ListBox) Set mListBox = lb Dim frm As Form Set frm = mListBox.Parent If mTimer Is Nothing Then Set mTimer = frm.Controls.Add("VB.Timer", "pollingTimer") mTimer.Interval = 200 End If If frm.ActiveControl Is mListBox Then StartPolling End If End Property
711 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:40:35 ] Private Sub StartPolling() mTimer.Enabled = True mTopIndex = mListBox.topIndex End Sub Private Sub mListBox_GotFocus() StartPolling End Sub Private Sub mListBox_LostFocus() mTimer.Enabled = False End Sub Private Sub mTimer_Timer() Dim currentTop As Integer currentTop = mListBox.topIndex If currentTop <> mTopIndex Then mTopIndex = currentTop RaiseEvent TopIndexChanged End If End Sub しかし、なんでそんなイベントでそんな値が必要なんだろう
712 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:44:28 ] VB6のサブクラス化って初めて見た 横から勉強になります
713 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:48:29 ] 「VB6 のサブクラス化」は、違う意味を指すもんだけどな。
714 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:55:46 ] 「ホイールで動かしたけりゃこのドライバ入れるかあのソフト入れろ」と言える俺は趣味グラマ
715 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:03:30 ] 趣味グラマ以前にバカすぎ 動かしたいって話ではなく 動かすのは出来てる上で そのイベントを取りたいって話なのに
716 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 15:06:15 ] FlexGridライクなグリッドツールで 使いやすくてフリーか安価な物ってありますか?
717 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:16:19 ] ttp://www.grapecity.com/japan/support/database/p1_223.htm
718 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:17:29 ] Windows7でもランタイム入ってるのか あと5年はイけそうだぬ
719 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 16:25:32 ] >>718 ところが動かないソフト続出w
720 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 18:44:50 ] >>716 俺はMSHFlexGridを自作のクラスと組み合わせて使いやすくしてる プログラマなら他人が作ったものを使うことばかり考えてないで 少しは自力で便利にしようって気になろうよ
721 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 19:10:59 ] DataGridView
722 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:37:17 ] DataGridViewって.NETのコントロールじゃないの? VB6でも使えるのか?
723 名前:716 mailto:sage [2009/03/09(月) 00:46:37 ] 自分で実装しても良いんですけど 自作にかかる費用と購入する費用を考えたときに 購入する方が安上がりかと思いまして 後、うちの会社レベルが低すぎてクラスの概念理解できる人がいないんです… やっぱグレープシティ買って貰うのが一番手っ取り早いですかね 1週間分の人件費で買えますし…
724 名前:デフォルトの名無しさん [2009/03/10(火) 22:18:45 ] 何でもかんでも自分で作ろうとする奴は馬鹿なのか? 費用対効果とか生産性で一番効率品質ともに良いほうを選ぶだけのこと。 車輪の再発明なんぞ自宅でやれ。仕事でやるな。 再発明した低レベルの車輪を見せびらかすな。
725 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:25:08 ] たいていは、上の人が買ってくれないから、って理由じゃない?>自前で作る
726 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 22:33:08 ] FlexGridProの品質の悪さは異常
727 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:25:40 ] > 車輪の再発明なんぞ自宅でやれ。仕事でやるな。 そもそも最初の質問で仕事で使うとは一言も書いてない件について 個人で使うことを想定した回答を、後出しの仕事で使うという情報を理由に叩く奴は馬鹿なのか?
728 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 23:40:34 ] >>724 の回答もどうかと思うが、 君のそれも話が噛み合ってないんじゃないの? >>725 の言うように724は勤め人にありがちな境遇がわかってない、 ってのなら同意するんだが。。 まあ、くだらんことで熱くなってもしょうがないだろ。
729 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:33:39 ] でも車輪の再発明って楽しいよな。
730 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:15:49 ] 再発明ではなく 新発明に出来る可能性を秘めてるからな 再発明にすら届かない可能性も孕んではいるが
731 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:12:26 ] 再発明ってやつは、意識して取り組めば、何らか得るものがあるが、 いかんせん時間効率がよくない。と思う 車輪の再発明は学生のうちにしとけ。とはよくいったもの 世の中そううまくいかん(実りある再発明行為が、学生のうちにできるわきゃない)わけだが
732 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:21:25 ] 時間効率が重視される仕事に置いてまで 再開発でも自作しろなんて言ってる奴は皆無である件について
733 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:28:14 ] コスト計算できない上司が部品買ってくれないってのは、自作しろって事じゃないの?
734 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:43:24 ] それは上司の主張であって、このスレの住人の主張ではないだろ
735 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:45:13 ] なんで上司の主張は除外されるわけ?
736 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 02:50:12 ] ここが会社ではなく2chのスレだから
737 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 03:19:15 ] 2chのスレだったら会社の話をしちゃいかんのか?
738 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 05:24:15 ] 別にいいんじゃないの? ただ会社の場合は「会社では」って付けてね 何も付けないと、名前空間上「このスレでは」って意味になるから
739 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:41:56 ] 上司の話をするのに、いちいち会社の上司はと付けなければいけないのか? いつからそんなルールになったんだ?
740 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:48:00 ] いや、そもそも「このスレの住人の(合意された)主張」なんてものが存在しません。
741 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 17:43:28 ] ★印の ”A7” とこを Cells(y, x) とすると 「Rangeメソッドは失敗しました」 と文句言われますが、どうすればいいのでしょう!? Range("A7:R120").Select Application.CutCopyMode = False Selection.Sort _ Key1:=Range("A7"), _ ★ Order1:=xlDescending, _ Header:=xlGuess, _ OrderCustom:=1, _ MatchCase:=False, _ Orientation:=xlTopToBottom, _ SortMethod:=xlPinYin
742 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:37:57 ] おしえてくだせえ。 frmMain 実行中に、フォームの右端をドラッグして大きさかえると、Resizeイベントが発生するまではいいんだが、 その後 frmMain.ScaleWidth や、frmMain.Width などを取得してみると大きさ変更前の値しか出てこないんだよ。 なにか足りない部分があるのでしょうか?
743 名前:742 mailto:sage [2009/03/21(土) 18:45:53 ] すんません。事故解決です。 VBのウイザードからある程度メニューやツールボックスが揃ったプロジェクトではじめていたので、 Set fMainForm = New frmMain と標準モジュールからフォームオブジェクトが開かれてました。 初心者に意地悪なつくりでした。
744 名前:デフォルトの名無しさん [2009/03/29(日) 21:05:14 ] VB6のMouseMoveイベントでXの値は正常に取得できるのですが、 Yの値が0となってしまいます。どうしてでしょうか?
745 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:02:14 ] それが 再現 できる 最小の コードを 出してくれ
746 名前:デフォルトの名無しさん [2009/03/29(日) 22:15:43 ] >>745 Private Sub txtLesson_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) With txtLesson(Index) If .Left <= X And X <= .Left + .Width And .Top <= Y And Y <= .Top + .Height Then .Left = .Left + 2: .Top = .Top + 2 SetCapture txtLesson(Index).hwnd Else .Left = .Left - 2: .Top = .Top - 2 ReleaseCapture End If End With End Sub いろいろ省きましたが、デバッグ中にIf文のところでYにポイントするとY=0と表示されます。 Xは通常どおり取得できます。 もうこれはコードの問題じゃないのではないかと思うのですが、どうでしょう?
747 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:37:02 ] テキストボックスに対して上からカーソル移動させてる。なんてオチはないよな? 上下左右どこから移動してもY=0なんだよな?
748 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 22:38:18 ] そういうときは、コードを Debug.Print y だけにして試すのが常道。
749 名前:デフォルトの名無しさん mailto:sage [2009/03/29(日) 23:47:10 ] >>746 それは「再現できる最小のコード」じゃないぞ
750 名前:デフォルトの名無しさん [2009/03/30(月) 05:21:48 ] >>747 うわーすみませんでした。そんなオチでした。 >>748 そうですよね。次回からそうしてます。有難うございました。 >>749 一応全体で何をやろうとしてるかも、伝わったほうがいいかなと思ったのですが、最小ではないですよね。 皆さん有難うございました。どうも僕はX, Yの値がテキストボックス上の値でなく、 それを含むウィンドウ上の値であると勘違いしていた模様です。 おかげで解決できました。どうもありがとうございました。
751 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 18:46:38 ] Err.RaiseとかRaiseEventとか俺使ったことないけど、何であんな奇妙なプログラム するんだ。あんなん何の意味があるんだ。
752 名前:デフォルトの名無しさん mailto:sage [2009/04/02(木) 20:24:17 ] しなけりゃしないでいいんだよ QBなどからの代々の互換性というか、いきあたりばったりというか、その場しのぎの言語仕様なんだから
753 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 00:53:26 ] 内部処理のエラーを外部仕様の言葉に変えて使用者に返したいんじゃないか
754 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 02:07:33 ] VB6使うならRaiseEventは無いと死ぬ
755 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 17:18:15 ] >>751 イベントドリブンなコード書いたこと無いの?
756 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:40:09 ] >>751 ベントウドンブリなコード書いたこと無いの?
757 名前:デフォルトの名無しさん [2009/04/06(月) 11:33:02 ] VB6で作成したアプリからVB2005で作成したexeを呼び出したいと思っています。 しかし、やろうとすると以下のエラーが出ました。 実行時エラー'5' プロシージャの呼び出し、または引数が不正です。 呼び出す部分のコードは以下の通りです。 VB2005で作成したexeを、仮に"VB2005App.exe"とし、そのexeはVB6.0で作成したアプリのexeと同じ階層に居るものとします。 Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwProcessId As Long) As Long Dim IDProcess As Long Dim hProcess As Long Private Const PROCESS_QUERY_INFORMATION = &H400& IDProcess = Shell("VB2005App.exe", vbNormalFocus) hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 1, IDProcess) AppActivate IDProcess 色々と調べたつもりですが、Shell関数の第1引数のパスはちゃんと合っていました。 ちなみに、VB6で作ったexeをshell関数で呼び出す場合は、何の問題もなく上記の方法で呼び出せました。 しかしなぜVB2005で作ったexeだとだめなのか、見当が付かない状況です。 どうかご回答を頂けたらと思います。
758 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:51:04 ] .NETフレームワークが無いって落ちじゃないよね・・・
759 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 14:41:10 ] AppActivate IDProcess でエラーっぽいな。 WaitForInputIdleがオンになるタイミングとActive可能なフォームが表示されるタイミングが 違ってる場合はAppActivateはエラーになる。 .NETのアプリはその例。 shellやAppActivateは使わずに全部Win32APIで書けば対応できるはず。
760 名前:デフォルトの名無しさん [2009/04/06(月) 15:37:30 ] VB6なんですが、サンプルコードを見ていて調べても分からなかった のですが、関数の後ろに%が付いているのは何の意味でしょうか? 例えば下記のような感じ Call DatInit% DatInit()という自作関数を呼び出すときにこんな風に書く場合です。
761 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 15:59:13 ] >>760 調べ方が足りない。型宣言文字
762 名前:デフォルトの名無しさん [2009/04/06(月) 16:32:05 ] >>761 dクス。型宣言文字自体は知ってましたがまさか関数にくっつくとは・・・ 戻り値が整数って事? C++みたいなキャスト目的って事でいいでつか? (まかり間違って長整数が返ってきてオバフロするのが嫌だから確実に整数にしとく、 みたいな)
763 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 16:38:42 ] お前の口調にはイライラする
764 名前:762 [2009/04/06(月) 16:55:49 ] 自己解決しました。
765 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 17:31:21 ] 春・・・だねぇ・・・
766 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:45:56 ] VB6でH8マイコンにデータを送信するプログラムを作る課題があるのですが 送信しようとすると時々VB自体がフリーズして強制終了するハメになります プロセス見るとVB6.EXEがあり終了することが出来ません フリーズする原因がわかりません。よろしくお願いします
767 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 00:46:48 ] プログラムが悪い、としか・・・
768 名前:デフォルトの名無しさん [2009/04/07(火) 09:09:02 ] おいおい>>764 は誰だ? 自己解決なんかしてないぞ。 くだスレなのに意地悪だねぇ
769 名前:757 [2009/04/07(火) 10:00:54 ] CreateProcess関数(API)を使ってexeを起動するようにしたら解決しました。 ありがとうございました。
770 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:14:51 ] スレの皆さんはじめまして。 VBでGSDを使用しようと思い試行錯誤中なのですが、いまいちテクスチャー作成 の部分でつまづきます。 VBで型などのポインタ受け渡しに悪戦苦闘しています。 まず、サンプルにあるテクスチャ作成・設定を行おうとCの本片手に変換しているのですが 動いてくれません。 どうかご教授お願いいたしたく思います。 GSD ttp://mosax.sakura.ne.jp/fswiki.cgi?page=GSD サンプル ttp://coderepos.org/share/wiki/GSD
771 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 15:53:54 ] 入れてもないし触ってもないけど なんとなくサンプル見たらDeclareしてVarPtrで普通にいけそうなんだけど
772 名前:デフォルトの名無しさん [2009/04/09(木) 11:11:15 ] 質問です。 VB6.0とVSSをインストールしてあるのですが VB6.0上でVSSを使用しファイル管理をするには まず何をしたらいいのでしょうか・・・?
773 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:08:25 ] まず基礎を自力で勉強したらいいと思うよ 勉強する気がないならプログラミングなんてやめちまえ
774 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:45:21 ] >772 プロジェクトをVSSに追加するとこから あとはVBの中からチェックアウト/インできる
775 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 12:51:24 ] VSSのヘルプを見てみてはどうか
776 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 19:24:54 ] gotfocusって、setfocusしないと呼び出せないの? それともフォーカスされると自動的にgotfocusが呼び出されるの?
777 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 19:54:37 ] Tab移動でも良いしマウスクリックでも良いし 対象のコントロールにフォーカスが移動した時に呼ばれるよ 実際に試してみると良いよ 呼び出されなくて悩んでるなら何のコントロールにどういうコードを書いてるのか 教えてもらわないと何も言えない
778 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 21:20:57 ] >>777 ありがとう〜 フォーカスの仕方によって、フォーカス対象のラベルが二通りに変動する処理を作ろうかと思ってて質問しますた ある時はラベルにAと表示して、またある時はラベルにBを表示する みたいに
779 名前:770 mailto:sage [2009/04/10(金) 04:13:24 ] >>771 レスありがとうございます。色々四苦八苦していました。 GSD_GetTexture(0, &info); ↓ Call GSD_GetTexture(0, ByVal VarPtr(Ginfo)) この様な感じでVarPtrでポインタをを指定しているのですが戻りが返ってきません。 他のバージョン取得等は戻り値が帰ってくるのでdll自体は使えてると思うのですが・・・ 色々調べてみようと思います。
780 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 09:18:12 ] GSD_TextureInfo がどういう宣言のし方してるんだろうな・・・ Ginfoのバイト数とかはC++のそれと同じにしてるんだろうか とか・・・ 詳しい動作の話になるとやってみないと突っ込めないけど
781 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 11:28:45 ] >>780 マニュアルでは struct GSD_TextureInfo { BOOL active; DWORD texSize; int x, y; DWORD color; DWORD align; BYTE *data; }; とありましたので Private Type GSD_Info GSD_Active As Boolean GSD_TexSize As Long GSD_X As Integer GSD_Y As Integer GSD_Color As Long GSD_Align As Long GSD_BYTE() As Byte End Type と置き換えました。 最後のByteは「テクスチャを格納したバッファへのポインタ」と書いてました。
782 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 21:28:58 ] BOOLとintはVBのLongに対応する。 あとBYTE*もLongにして、コード中で別の配列変数からVarPtrで取得した値を代入するしかないと思う。 ところで元と名前を変えるのキモい。
783 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 22:57:02 ] >>782 ありがとうございます。早速やってみようと思います。 >ところで元と名前を変えるのキモい。 すみません・・・以後気をつけます
784 名前:770 mailto:sage [2009/04/11(土) 04:40:18 ] >>782 Private Type GSD_Info active As Boolean texSize As Long x As Long y As Long color As Long align As Long data As Long End Type --- Dim Ginfo As GSD_Info Dim GByte(256) As Byte Ginfo.data = VarPtr(GByte(0)) Call GSD_DataLock Call GSD_GetTexture(0, ByVal VarPtr(Ginfo)) とし、Ginfo.texSizeを取得しても戻って来るはずのテクスチャサイズが 戻ってきませんでした。 置き換えって難しいですね・・・更に試行錯誤してみます。