VB2010(VS2010)だと、.NET 4がデフォルトなのですね。
CLIという仮想マシンのバージョンも変わっているので、アンマネージコードを呼び出すあたりの仕様も微妙に変わっていると考えられます。
MSのサイトを見たところ…
「アンマネージコードとの相互運用性のパフォーマンスを向上させるために、プラットフォーム呼び出しに不適切な呼び出し規約があると、アプリケーションが失敗するようになりました。以前のバージョンでは、マーシャリング レイヤーがこれらのエラーを 1 つずつ解決しました。」
という記述がありました。たぶん、THW2VBNET.dllを呼び出す宣言(=サンプル)に誤りがあるものの、.NET3.5だと.NETが誤りを吸収してくれたものを、.NET4だとエラーとして報告する・・・ということだと思います。
自分の環境がVS2010(or later)になれば解消したいと思います。それまでしばしお待ちください。
ご迷惑おかけします・・・。
> 皆さん、こんにちは。お手数をお掛けしました。
> 浜田さん、ありがとうございます。
>
> 「詳細コンパイル オプション」の「対象フレームワーク」が
> 「.NET Framework 4 Client Profile」になっていました。
> (変更はした事はありませんでしたが)
> これを .NET Framework 3.5 に変えたらWinXp、Win7共に
> エラーが無く実行できるようになりました。.
>
> NET Framework 4 にするとWinXp、Win7共にVB2010で
> 同じ Hamlogopen() の箇所でエラーが出ますが。