失敗しました Pythonからdllを読み込む
Pythonからdllを読み込もうとして失敗しました。
SetMouse.dllなる動的ライブラリをあらかじめ作成して、
import ctypes
dll = ctypes.windll.SetMous
と、すると
OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
などと読み込めないことがありました。
どうやら、dllを64ビット用にコンパイルしなければならなかったらしいのです。OSが64ビットのためなのか、インタプリタが64ビットのためなのか。 (エラーメッセージはなんだったのか)
先日の投稿
コマンドラインからVCコンパイル - 開発用コンソール設定 - 芸州伝 - げいしゅうでん
に話題が戻りまして、これがいけなかった。 32ビット向けの開発環境に設定されるようですね。
こちらの記事 方法: 64 ビットの Visual C++ ツールセットをコマンド ラインから有効にする の様に、別のバッチファイルでx86向けかx64か切り替えてからコンパイルしなければいけなかったのです。
が、
私の環境では、
vcvarsall x86_amd64
のように、少し異なる引数を与えて正しく実行されるようです。
なぜなのか。AMDとは何なのか。私はK6-3以降は知りません。
そういえば、このころはIntel CPUをAMDに乗せ換えたりできましたね。クロック数が3倍になりましたね。カオスでしたね。