HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者
参照先
Re: .NET対応 (VB & C#)
546
2014/06/12(Thu) 23:55:04
JO1SIM・出島

吉田OM、太田OM
JO1SIMでしまです。

お手数おかけしています。

DLLをどこにおいても、C#でもNGということはDLLそのものの動作ということがはっきりいたしました。ありがとうございます。

もう1点考えられる点としては、新DLLを作成した開発ツールがVisual Studio 2013なので、そのランタイム(MSVCR120.DLL)がないと動かないからかもしれません。(Dependency Wakerで見たら参照してました。)
週末あたり、同ランタイムを使用しないようにしたものをリリースしてみます。

お待たせしてすみません。
よろしくお願いいたします。


> 吉田OM、太田OM
> JO1SIMでしまです。
>
> 私の環境で再現しないので確実なことは言い切れませんが、同じ事象が発生しているということは、個別の環境とは異なる何かがありそうですね。
>
> 確実なことは言えませんが、やはり、同じ名前のDLLを更新して提供しているというところに問題の本質がありそうです。.
>
> Netの場合はDLLの検索順序が異なるという情報もありますので、以前のバージョンのDLLと新バージョンのDLLが異なるものと認識して読み込まないのかもしれません。セキュリティや「DLL地獄」からの解放のための機能のようです。アンマネージDLL(=THW2VBNET.DLL")でもそうなのかよくわかりません。
>
> ・DLLの検索順序の問題ならば、プログラム名.exe.localというファイルを実行ファイルのディレクトリに入れて実行してみる(「DLL/COMリダイレクション」する)とどうなるでしょうか?強制的にDLLを実行ファイルのフォルダにできるとのことです。(中身は0バイトのファイルで可)
>
> ・エクスプローラでC:\windows\assemblyをみると、THW2VBNETらしきものがあったりしませんでしょうか?(ないのが正解)
>
> ・Windows\System32等に、THW2VBNET.DLLが格納されていたりしませんでしょうか?逆に、格納したら起動するか試してみることは可能でしょうか?(少し危険ですが)
>
> しかし、.NETは謎が多いです・・・
>
>
> > 吉田OM
> >
> > JO1SIM出島です。
> > 結果はあまり芳しくありませんが中間報告です…。
> >
> > ファイルのプロパティに出てくる「ブロックの解除」の関係かと思い、Windows 8.1の端末でDLLをダウンロードして入れて試してみたのですが、「ファイルが見つからない」という事象にはなりませんでした。(Windows7でも同じ)
> >
> > ただ、その際ウィルスチェックソフトがおせっかいなことをして実行ファイルを消したりしてきましたので、お使いのソフト次第ですが、無関係ではないかもしれません…。(すでに「解除済み」でしたらすみません。)
> >
> > もう1点…
> > 増えた関数の定義が従来のものと少し異なっていたため、合わせてDLL自体も作成しなおしました。(それから、先日追加したVB用の定義ファイルのファイル名を変更しています。)
> >
> > お手数おかけしますが、6/10版のDLLもお試しいただければと思います。
> >
> > よろしくお願いします。
> >
> >
> > > JO1SIM 出島さん、こんにちは。
> > >
> > > > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
> > >
> > > 手数をおかけして申し訳ありません。
> > > こちらも、もう少し調べてみます。
> > >
> > > JA1RNR 吉田 康太郎
> > > JO1SIM 出島さん、こんにちは。
> > >
> > > > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
> > >
> > > 手数をおかけして申し訳ありません。
> > > こちらも、もう少し調べてみます。
> > >
> > > JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
545
2014/06/12(Thu) 11:37:36
JA1RNR 吉田
追伸

> ・DLLの検索順序の問題ならば、プログラム名.exe.localというファイルを実行ファイルのディレクトリに入れて実行してみる(「DLL/COMリダイレクション」する)とどうなるでしょうか?強制的にDLLを実行ファイルのフォルダにできるとのことです。(中身は0バイトのファイルで可)
>

私のテストプログラム名のTHW2VBNET_TestProgaram.exe.localの0バイトファイルを実行ファイルディレクトリに入れて実行してみました。

その結果は、前記と同様に以前DLLでは正常処理
新DLLではDLL見つからずです。

JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
544
2014/06/12(Thu) 10:56:02
JA1RNR 吉田
出島さん、太田さん。

以前のログ[No.413] Re: Win7 + VisualBasic2010で、において「InitHamlogDLLを呼び出さずにTHWVB_CopyBufferか、THWVB_SetBufferを呼び出してみてください。これらの関数はTHW2BVNET.dll内のでの処理のみを行うため、「落ちる」場合はTHW2VBNET.dll自体の呼び出しに問題があり、「落ちずにエラ-が帰ってくる」場合はHamlog50.dllとのリンケ-ジの問題ということになります。前者ならば、.NETからDLLを呼び出す際の設定、後者ならばファイルのパス、あるいは、DLL同士のミスマッチみたいなことが起きている可能性があります。」とありましたので
InitHamlogDLLを呼び出さずにTHWVB_CopyBufferを実行してみました。

その結果は、以前のTHW2VBNET.dllでは、1030 が帰ってきますが、
新DLLでは、「DLL 'THW2VBNET.dll' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)」という結果です。

JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
543
2014/06/12(Thu) 10:36:11
JA1RNR 吉田
出島さん、太田さん こんにちは。

私も太田さんと同じく「サンプルプログラムの動作はWindows\System32 に入れても入れなくても新DLLではNG、旧DLLならOKです。」

> ・エクスプローラでC:\windows\assemblyをみると、THW2VBNETらしきものがあったりしませんでしょうか?(ないのが正解)
>

C:\windows\assemblyには、THW2VBNETらしきものはありませんでした。

JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
542
2014/06/12(Thu) 07:12:35
JA2BQX
JO1SIMでしまさん、こんにちは。

> 私の環境で再現しないので確実なことは言い切れませんが、同じ事象が発生しているということは、個別の環境とは異なる何かがありそうですね。

C#でも動かないようです。


> ・エクスプローラでC:\windows\assemblyをみると、THW2VBNETらしきものがあったりしませんでしょうか?(ないのが正解)

無いですね。

> ・Windows\System32等に、THW2VBNET.DLLが格納されていたりしませんでしょうか?逆に、格納したら起動するか試してみることは可能でしょうか?(少し危険ですが)

サンプルプログラムの動作は \Windows\System32 に
入れても入れなくても新DLLではNG、旧DLLならOKです。
\bin\Debug\ においてテストしていますが、他にコピーしてみるところはありますか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: .NET対応 (VB & C#)
541
2014/06/11(Wed) 23:14:52
JO1SIM・出島

吉田OM、太田OM
JO1SIMでしまです。

私の環境で再現しないので確実なことは言い切れませんが、同じ事象が発生しているということは、個別の環境とは異なる何かがありそうですね。

確実なことは言えませんが、やはり、同じ名前のDLLを更新して提供しているというところに問題の本質がありそうです。.

Netの場合はDLLの検索順序が異なるという情報もありますので、以前のバージョンのDLLと新バージョンのDLLが異なるものと認識して読み込まないのかもしれません。セキュリティや「DLL地獄」からの解放のための機能のようです。アンマネージDLL(=THW2VBNET.DLL")でもそうなのかよくわかりません。

・DLLの検索順序の問題ならば、プログラム名.exe.localというファイルを実行ファイルのディレクトリに入れて実行してみる(「DLL/COMリダイレクション」する)とどうなるでしょうか?強制的にDLLを実行ファイルのフォルダにできるとのことです。(中身は0バイトのファイルで可)

・エクスプローラでC:\windows\assemblyをみると、THW2VBNETらしきものがあったりしませんでしょうか?(ないのが正解)

・Windows\System32等に、THW2VBNET.DLLが格納されていたりしませんでしょうか?逆に、格納したら起動するか試してみることは可能でしょうか?(少し危険ですが)

しかし、.NETは謎が多いです・・・


> 吉田OM
>
> JO1SIM出島です。
> 結果はあまり芳しくありませんが中間報告です…。
>
> ファイルのプロパティに出てくる「ブロックの解除」の関係かと思い、Windows 8.1の端末でDLLをダウンロードして入れて試してみたのですが、「ファイルが見つからない」という事象にはなりませんでした。(Windows7でも同じ)
>
> ただ、その際ウィルスチェックソフトがおせっかいなことをして実行ファイルを消したりしてきましたので、お使いのソフト次第ですが、無関係ではないかもしれません…。(すでに「解除済み」でしたらすみません。)
>
> もう1点…
> 増えた関数の定義が従来のものと少し異なっていたため、合わせてDLL自体も作成しなおしました。(それから、先日追加したVB用の定義ファイルのファイル名を変更しています。)
>
> お手数おかけしますが、6/10版のDLLもお試しいただければと思います。
>
> よろしくお願いします。
>
>
> > JO1SIM 出島さん、こんにちは。
> >
> > > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
> >
> > 手数をおかけして申し訳ありません。
> > こちらも、もう少し調べてみます。
> >
> > JA1RNR 吉田 康太郎
> > JO1SIM 出島さん、こんにちは。
> >
> > > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
> >
> > 手数をおかけして申し訳ありません。
> > こちらも、もう少し調べてみます。
> >
> > JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
540
2014/06/11(Wed) 10:45:56
JA1RNR 吉田
JO1SIM 出島さん、こんにちは お手数をお掛けしています。

> ただ、その際ウィルスチェックソフトがおせっかいなことをして実行ファイルを消したりしてきましたので、お使いのソフト次第ですが、無関係ではないかもしれません…。(すでに「解除済み」でしたらすみません。)
>

ウイルスバスタークラウドを使っていますが、該当する部分はなさそうです。念のために「管理者として実行」をしましたが、同様のエラーです。

> もう1点…
> 増えた関数の定義が従来のものと少し異なっていたため、合わせてDLL自体も作成しなおしました。(それから、先日追加したVB用の定義ファイルのファイル名を変更しています。)
>

了解しました。

> お手数おかけしますが、6/10版のDLLもお試しいただければと思います。
>

6/10版のDLLを試しましたが、残念ながら結果は同様にDLLが見つからない旨のエラーが発生します。

前述のJA2BQX 太田OMの確認でも同様のエラー生じているところから、 Visual Basic 2010 Express .NET Framework3.5 に問題があるのでしょうか??? 私は、Win8 64bit版ですが。

JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
539
2014/06/11(Wed) 07:58:40
JA2BQX
こんにちは。
JO1SIM出島さん、ありがとうございます。

簡単なテストをしていますが吉田さんと同様に
If InitHamlogDLL() <> success Then にてDLLファイルが見つからない旨のエラーが出ます。

Win7 64bit版
Visual Basic 2010 Express .NET Framework3.5
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: .NET対応 (VB & C#)
538
2014/06/10(Tue) 22:56:45
JO1SIM・出島

吉田OM

JO1SIM出島です。
結果はあまり芳しくありませんが中間報告です…。

ファイルのプロパティに出てくる「ブロックの解除」の関係かと思い、Windows 8.1の端末でDLLをダウンロードして入れて試してみたのですが、「ファイルが見つからない」という事象にはなりませんでした。(Windows7でも同じ)

ただ、その際ウィルスチェックソフトがおせっかいなことをして実行ファイルを消したりしてきましたので、お使いのソフト次第ですが、無関係ではないかもしれません…。(すでに「解除済み」でしたらすみません。)

もう1点…
増えた関数の定義が従来のものと少し異なっていたため、合わせてDLL自体も作成しなおしました。(それから、先日追加したVB用の定義ファイルのファイル名を変更しています。)

お手数おかけしますが、6/10版のDLLもお試しいただければと思います。

よろしくお願いします。


> JO1SIM 出島さん、こんにちは。
>
> > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
>
> 手数をおかけして申し訳ありません。
> こちらも、もう少し調べてみます。
>
> JA1RNR 吉田 康太郎
> JO1SIM 出島さん、こんにちは。
>
> > 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)
>
> 手数をおかけして申し訳ありません。
> こちらも、もう少し調べてみます。
>
> JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: .NET対応 (VB & C#)
537
2014/06/10(Tue) 11:54:42
JA1RNR 吉田
JO1SIM 出島さん、こんにちは。

> 少し時間をいただくかもしれませんが、それまではDLLは従来版をご利用いただければと思います。(増えた関数を使わなければ、C#のインポートライブラリをはじめ、新しいアーカイブの中身をそのまま利用可能です。)

手数をおかけして申し訳ありません。
こちらも、もう少し調べてみます。

JA1RNR 吉田 康太郎
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop