プロが教える店舗&オフィスのセキュリティ対策術

VC+2005でx64ネイティブコードを出力し、DLLを作成したのですが
C:\WindowsフォルダにそのDLLを入れて、いつもどおりVBAから呼びだそうとすると、該当するDLLがありません。と表示されます。
同じように置いているのに無いというメッセージが理解できないです。

x86(32bit)で生成したDLLなら問題なく動作するのですが・・・

何か違いでもあるのでしょうか?
Declareとかでは呼べないのでしょうか?
ちなみにVBAはExcel2003です。

DLLでなくMFCアプリで完全ネィテイブ.EXEを作らないとx64の環境は生かせないのでしょうか?

A 回答 (1件)

x64環境では32ビット アプリ は32bit DLL


64ビット アプリは 64ビット DLLを使うことができますが、
上記以外はできません

64ビットアプリは32ビットDLLを呼べないし
32ビットアプリは64ビットDLLを使えません

>DLLでなくMFCアプリで完全ネィテイブ.EXEを作らないとx64の環境は生かせな>いのでしょうか?

基本的にはそう言えると思います。
ただし、複数の32ビットアプリがそれぞれ4G(システム含むのでユーザー領域はもっと小さいですが)扱えるということはメリットかもしれません。
32ビット環境ではアプリ、システム全体で32ビットしか使えないわけですから..
(裏ワザのような方法もありますが...)

参考URL:http://ja.wikipedia.org/wiki/WOW64
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!