VBプログラマ質問スレ(6.0以前) Part41 VBだけに、あると思った。
928のVBの印象は間違っていたようだ。
VBの壁
931 :
デフォルトの名無しさん :2005/05/20(金) 00:08:57
EXEを作れるEXEはどうやって作ればいいのですか?
>>931 PEフォーマットの形式で、ヘッダなどをつけて
機械語コードを埋め込んだバイナリファイルを
作成するEXEを作ればいいだけ。
具体的にはスレ違い。
>>931 コンパイラの勉強とかPEフォーマットやインテルの仕様書見ろ
934 :
921 :2005/05/20(金) 01:02:07
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean) myIE.Navigate2 URL, , , , "Authorization: Basic " & strAccount & vbCrLf End Sub BASIC認証の件なんですが、このコードで毎回ヘッダを送信するようにしたところ Navigateする度に自身のイベント呼び出してしまう無限ループに陥りました・・・orz VBAでいうApplication.EnableEvents = False のようなイベントを無効にする事って出来ないんですかね?
>922 つ[RegExp]
>>936 おー、自分の求めていたものが出来ました!
ただこのままでは対象をファイルに保存するで、ダウンロードする時に
パスワードを要求されてしまう・・・orz
WebBrowser1_DownloadBegin()
これでは引数にURLがないし、どうしたらいいのでしょう?
APIでBASIC認証ダイアログのハンドルを取得して、SendMessageできたらなぁ・・・
>>937 ファイルをダウンロードするところを・・・Inetだっけ?
とかWinSockとかでやったら?
> APIでBASIC認証ダイアログのハンドルを取得して、SendMessageできたらなぁ・・・
それと同じようにWebBrowserでパスワードをSendMessageで・・・って
やったことあるけどねw
やばいサイト用ツールなのでソースを出すわけにはいかないがw
>>938 セキュリティの点で問題があるので、去年MSがIEのパッチで使えなくして、
サイト側も使えないところが多くなったような。
941 :
デフォルトの名無しさん :2005/05/20(金) 14:44:10
VB6.0上のMsgBox上の表現で右詰にする方法はありませんか???
942 :
891 :2005/05/20(金) 17:14:23
エラーはでなくなったんだけど 配列を渡す先のdllでめちゃめちゃな値が渡されてる・・・ VBでは配列の値が1で送ったはずなのにdll先(C++)では1242316って値になってるし??? どういうことなんでしょうか?
>>942 DLL(C++) で VB の配列を受け取る場合は VARIANT(C++)型を使え。
944 :
891 :2005/05/20(金) 17:48:18
>>943 C++でVariantって定義したらシンタックスエラーっていわれて怒られた(´・ω・`)
どういう風に宣言したらいいのでしょうか?
>>944 VARIANTだ。大文字小文字は区別される。それでもだめなら<OAIdl.h>をインクルードしろ。
でも1次元の配列ならVARIANTにしなくてもできるはず。
DLLとVB側でどんな宣言をした?
946 :
デフォルトの名無しさん :2005/05/20(金) 20:11:14
おしえてください。VBで通常参照設定をしているDLLを CreateObjectでセットする事ってできるのでしょうヵ?
できる。
948 :
891 :2005/05/20(金) 20:28:40
>>945 VB側
Dim a(10) as Long
For i = 0 to 9
a( i ) = i + 1
Next
kotae = siki ( a() , b , c)
Declare Function siki Lib "test.dll" ( x() As Long , ByVal y As Long , ByVal z As Long) As Double
C++側
TEST_API double __stdcall siki (int x[] , int y , int z )
こんな感じです
949 :
デフォルトの名無しさん :2005/05/20(金) 20:38:19
>>947 方法を教えていただきたいのですが、よろしくお願いします。
イメージとしては
dim aaa as object
set aaa = CreateObject("abc.dll")
を想定してたのですがコンパイルエラーになります。
DLLはクラス名じゃないから当然。 参照設定しているDLLに入っているクラスを指定しろ。
951 :
デフォルトの名無しさん :2005/05/20(金) 20:48:01
>>950 回答ありがとうございます。
クラスというとおそらくはDLLを構成しているクラスモジュールだとおもうのですが
あっていますか?
ActiveXコンポーネントはオブジェクトを作成できませんのエラーがでます。
revsvrは実行しています。
クリはクラスだろう。オレがよく使うのは CreateObject("Scripting.FileSystemObject") CreateObject("OracleInProcServer.XOraSession") ということは?
953 :
デフォルトの名無しさん :2005/05/20(金) 20:50:19
あっとわかりました。!! DLL名.クラス名 で正解ですね??
DLL名.じゃねーってw ActiveX DLLのオブジェクト名.クラス名だ。 ちょっと違った気もするがまあいいか。
abcというオブジェクト名の
dllというクラス名なら
>>949 で正解!
956 :
デフォルトの名無しさん :2005/05/20(金) 21:11:16
了解しました先生方!! うまくDLLの関数がよびだされました。 オブジェクト名が正だったんですね。 分かり易い説明ありがとうございました。
すみません。文字列の比較についてなんですが、 VBでは文字列の比較に「=」を使用してもいいんでしょうか? それとも必ずstrcompを使うわないといけないんでしょうか?
959 :
デフォルトの名無しさん :2005/05/20(金) 23:52:54
線分OAのOを中心に45度のところに線を描きたいのですが、 角度を用いて線を描くときはどうやって表せばいいのでしょうか?
>>959 線分を引くにはLineメソッド。(PictureBoxかFormっしょ?)
2点の座標がいる訳だが点Oの座標ともう一点は計算で楽勝でしょ。
(45度なら計算するまでもないが、
任意角度でもSin/Cos関数を使って中学生にでもできる)
962 :
959 :2005/05/21(土) 00:17:44
1つの枝から3本の枝が出て、それぞれからまた3本の枝が出て・・・ っと続いていく図形を作りたいのですが、それも計算で表すことでできるでしょうか?
>>957 完全一致の比較は「=」でいい。
TextCompareモードとかで比較する時にStrCompを使うと便利。
>>962 いつも45度ずつなら三角関数は必要ないなあ。
簡単な法則で次の座標値を計算できるし。
965 :
959 :2005/05/21(土) 00:33:58
簡単な法則とはどのようなものでしょうか。
966 :
デフォルトの名無しさん :2005/05/21(土) 00:35:30
本当にわかって言ってるのか
>>960 とか
>>964 は。
まあ確かに高校生レベルの数学(中学生はさすがに言いすぎ)だが、
そんなに簡単とも思えないが。
結構面倒くさいぞ。
967 :
966 :2005/05/21(土) 00:40:58
>>965 俺なら局座標でもユーグリッド座標でも定義できる
二次元ベクトルのクラスをつくるね。
局座標をxy座標に変換するのは出来るでしょ?
それが出来ればあとはベクトルの足し算すればいいと思う。
968 :
デフォルトの名無しさん :2005/05/21(土) 00:43:56
あ極座標ね
969 :
959 :2005/05/21(土) 00:46:56
>>966 なるほど。ありがとうございます。
ところで質問ばかりで申し訳ありませんが、
極座標はVisual Basicでどのようにあらわすのでしょうか?
>>967 お前は字も読めない小学生か?
ここは数学板ではないぞ。スレ名をよく見てみろ。
>>960 みたいにコードで答えなきゃ意味がない。
971 :
デフォルトの名無しさん :2005/05/21(土) 00:52:28
>>970 君は「サンプルコードがなければ何もできない、いつもサンプルをコピペして
コーディングしている自分」を他人に投影し過ぎです。
普通の知能レベルの人は「考え方」さえ聞けば必要十分なのだよボクちゃん。
972 :
デフォルトの名無しさん :2005/05/21(土) 01:01:39
>>969 Visual Basicの組み込みの機能としては、極座標というデータ型はない。
極座標って要xyの直交座標の代わりにはrとθで表現する座標系だってことは
わかるよね?
だったら、その通りコーディングするだけだと思うけど。。
973 :
デフォルトの名無しさん :2005/05/21(土) 01:20:10
荒らしは華麗にスルーしましょう。
974 :
957 :2005/05/21(土) 01:26:27
>>963 ありがとうございました。
Cだとかだと関数使わないといけなかったですよね?
演算子による比較だと同じメモリアドレスでないと真にならないとか。
それで気になって質問してみました。
w
977 :
891 :
2005/05/21(土) 02:46:12 >>958 サンクス
そのsiki(a(0))の方法で無事読み込めたよ!!!
そうか〜配列のしょっぱなのアドレスをC++へ渡せばいいだけだったんだね
本当に助かりますた(`・ω・´)シャキーン