http://www.agtech.co.jp/html/v8sdkmanuals/prog_tut/Vbtutor3.html
のページにあるサンプルでオーナー ネームが指定されているファイルが開けません。オーナー ネームが指定されていなければ開けます。
ファイルにオーナー ネーム(pass)を指定して、このサンプルで
Owner$ = "" + Chr$(0) → Owner$ = "pass" + Chr$(0)
とやってファイルを開こうとすると、エラーコード51(オーナー ネームを指定してください)が返されてしまいます。
なぜでしょうか?
誰か分かる方お願いします。
関係ないかもしれませんが、
一目見ただけで、
"pass"が文字列なのに+を使って計算している箇所などから、
非常に不快なコードだと思いました。
サンプルを見るのにこれでは読む気をなくします。
色々話題になるけど、
[String]+[String]はMSDNに
# 両方の式が文字列型 (String) | 文字列連結
という風にかかれています。
…最も、見づらいのには変わりありませんが。
サンプルコードを見ると大昔の16ビット版のVBの時代のソースをほとんどそのまま持ってきただけのように見えますね。
VB内部の文字コードがUniCodeに変わったことに伴うLen,LenB,固定長文字列の格納可能文字数とバイト数についても全く気を遣っていないように見えます。
なんとなくですが、このAPI自体が16ビットのVBの時代ソースを最小限の変更で32ビット環境に移行できるようにするための「あまり気合いの入っていないDLL」でしかなく、本音としてはActiveXコンポーネントに移行して欲しいのということなのかもしれません。
ツイート | ![]() |