[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
167(2): 2016/04/09(土)10:55 ID:uD9Ltjj7(1/2) AAS
>>165
なんで大事な部分を書かずに濁すの?
168(1): 2016/04/09(土)11:27 ID:mXQNErhc(1/2) AAS
>>167
大事な部分って?
169(1): 2016/04/09(土)11:49 ID:8+AE4+J9(1) AAS
コードじゃね?
170(1): 2016/04/09(土)12:00 ID:YC7vrxdl(1/2) AAS
どんな dll 使って、
どう失敗するのか
とかじゃね?
171: 2016/04/09(土)12:35 ID:lZD29UWG(1) AAS
性別と容姿じゃね?
172(1): 2016/04/09(土)15:25 ID:8VJ1WNjN(2/5) AAS
>>167-170
DLLはこんな感じで
Declare PtrSafe Function funcABC Lib "ABC.dll" (ByVal n As Long, ByRef v As Variant) As Long
本来1が返ってくるべきところに0が返ってくるんです。
だけど、〜 Lib "C:\tmp\ABC.dll" 〜 とすると、ちゃんと1が返ってくる。
どちらの場合もDLL名を変えると「ファイルが見つかりません」という実行時エラーになるので、同じDLLファイルを
指しいてるのは間違いないと思います。
173(1): 2016/04/09(土)16:35 ID:kbPPFUQM(1) AAS
>>172
そんなの "ABC.dll" の作り次第だろ
作者に聞けよ
dll のパス取得して何かしてるのかもしれないし
外部リンク[html]:frog.raindrop.jp
174: 2016/04/09(土)16:55 ID:DA1syyI4(1/2) AAS
>念のため他のフォルダに同名のDllがないか確認しましたが、そんなものはありませんでした。
限りなくこれが怪しいと思うんだが
175(1): 2016/04/09(土)16:57 ID:XGWfr4Pw(1/2) AAS
>>165
同名のdllが無いことをどうやって確認した?
176(3): 2016/04/09(土)18:20 ID:uD9Ltjj7(2/2) AAS
>>165
挙動が変わることはあります。
おわり
177(1): 2016/04/09(土)18:32 ID:8VJ1WNjN(3/5) AAS
>>175
パスが通っている全フォルダとカレントフォルダからの目視です。
環境変数(PATH)をまず確認して、
kernel32.dllにあるAPI 「GetEnvironmentVariableA」 に引数"PATH"を渡して出てきたフォルダを対象にしました。
問題のfuncABC も GetEnvironmentVariableA も同じVBAから発行しています。
178(1): 2016/04/09(土)18:41 ID:DA1syyI4(2/2) AAS
カレントフォルダをどうやって確認したかとか
システムディレクトリにdllがないかとか
まあ、確認漏れ自体はいっぱいありそうだな
179(2): 2016/04/09(土)18:46 ID:8VJ1WNjN(4/5) AAS
>>178
C:\windowsやC:\Program Files、C:\Program Files (x86)は入ってますよ。
目視も検索フィルタにとりあえず *.dll で全DLLを出してからやっています。
>>176
マジですか...
180(2): 2016/04/09(土)19:45 ID:mXQNErhc(2/2) AAS
>>179
本当にひとつしかないならあり得ない挙動だと思うけど。
dllの内容を明かしてみな。
181(1): 2016/04/09(土)19:57 ID:zSVIlalC(1) AAS
Windows が使用する DLL 検索パス
1.実行中のプロセスの実行形式モジュールがあるフォルダー。
2.現在のフォルダー。
3.Windows システム フォルダー。このフォルダーへのパスは、GetSystemDirectory 関数が取得します。
4.Windows ディレクトリ。このフォルダーへのパスは、GetWindowsDirectory 関数が取得します。
5.環境変数 PATH 内に記述されたフォルダー。
外部リンク[aspx]:msdn.microsoft.com
182(1): 2016/04/09(土)20:29 ID:XGWfr4Pw(2/2) AAS
>>177
ウインドウズの検索機能を使ってみたら?
183(1): 2016/04/09(土)20:38 ID:KOaWU5bX(1) AAS
何か仕事でもしながら、ディスク全部の範囲で、検索すればいい
184(1): 2016/04/09(土)21:28 ID:yIzAT5uL(1/2) AAS
windows なら黙って search everything 入れろ
考える余地なし
185(1): 2016/04/09(土)21:30 ID:yIzAT5uL(2/2) AAS
あ、業務用のマシンだとマズいか
186(1): 2016/04/09(土)21:43 ID:YC7vrxdl(2/2) AAS
>>179
> 目視も検索フィルタにとりあえず *.dll で全DLLを出してからやっています。
プログラマーに向いてないんじゃね?
コマンドプロンプトで
dir /s /b \ABC.dll
ってやればいいだけだろ
187(5): 2016/04/09(土)23:15 ID:8VJ1WNjN(5/5) AAS
>>180
ODBCのコネクションを張る関数で、特に自分の場所が関係する処理はしてないですね。
>>181-186
全ドライブを検索した結果(search everythingは入れてませんが dir/s はやってみた)
C:\Users\*****\Google ドライブ\
に見つかりました。
しかし、これを消しても現象は変わらなかった(もともと参照パスに入ってない)ので、諦めの気分です。
188(1): 2016/04/10(日)00:12 ID:TaPFtU7E(1) AAS
元々の質問は、挙動が変わることがあるか?で、
あるって回答で解決だと思うけど、どうしてもないってことにしたいの?
ゴールが見えないよ
189: 187 2016/04/10(日)00:39 ID:9vV3r8su(1/3) AAS
>>188
あるって回答(>>176)もあり、ないって回答(>>180)もありで、判断がつかない状況です。
190: 187 2016/04/10(日)00:47 ID:9vV3r8su(2/3) AAS
それと、>>173と>>176もいまいち理解できておりません。
「dllのパスを取得」とは、実際の存在はひとつでもDeclare文での指定のしかたまでも検知できるんでしょうか?
191(1): 2016/04/10(日)01:04 ID:9zYVMe1H(1/3) AAS
まさか、パス・ユーザー名など、システムに関係する部分に、
日本語を使ってないだろうな?
それで、バグってるとか?
192: 187 2016/04/10(日)01:08 ID:9vV3r8su(3/3) AAS
>>191
ないですね
193: 2016/04/10(日)01:14 ID:9zYVMe1H(2/3) AAS
そのDLLの作者が外人で、DLL内で、パス・ユーザー名を扱っていた場合、
もしその中に日本語が入っていれば、バグるかも
194: 2016/04/10(日)01:22 ID:9zYVMe1H(3/3) AAS
>>187
>ODBCのコネクションを張る関数で
それなら、そのDBのメーカーが(ドライバーが)、絶対パスしか許可していないのかも。
相対パスの危険性も考慮して、そういうアクセス許可にしているのかも
絶対パスを使えばいい
195: 2016/04/10(日)05:47 ID:v52RcnsN(1) AAS
>>187
> 特に自分の場所が関係する処理はしてないですね。
ん?
自分で作った dll なの?
だったら自分でデバッグしなよ
196: 2016/04/10(日)10:59 ID:KR5BT3Be(1) AAS
全ドライブを検査してひとつしかdllファイルがなかったって言ってるんだろ。
それが本当なら何も対処できないよ。OSレベルの不具合。
上下前次1-新書関写板覧索設栞歴
あと 806 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s