パラレル ポートを介して LED を制御するために、Visual C++ で次のコードを書きました。
// InpoutTest.cpp : コンソール アプリケーションのエントリ ポイントを定義します。///
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include <conio.h>
short _stdcall Inp32(short PortAddress);
void _stdcall Out32(short PortAddress, short data);
int main(int argc, char* argv[])
{
Out32(888, 255);
system("pause");
Out32(888, 0);
return 0;
}
さて、私が考えたのは、「Out32(888, 255);」という行です。すべてのデータ レジスタに 1 を書き込み、D0 から D7 に接続されているすべての LED が点灯します。しかし、何も起こらず、実行前に点灯していた LED は点灯したままで、消灯していた LED と同じケースでした。
「Out32(888, 0);」の場合も同様で、どの LED もオフになりませんでした。
上記のコードで何が間違っていますか? 64ビットOS(Windows 8)で作業しているため、「Inpoutx64.dll」を使用しました。プロジェクトのプロパティ>リンク>入力>追加の依存関係にも「Inpoutx64.lib」を含めました。
また、「inpoutx64.dll」を Windows/system 32 にコピーしました。