|
저기, 죄송한 말씀이지만,
제가 테스트 예제를 작성하던 도중...
올려드린 Inpout32.dll 에 문제가 있는걸 발견했습니다. --;
어이없는 답변이지만 제가 보내드린거 사용하지 마시고요,
포트 I/O 관련 컴포넌트 (저도 찾아보겠습니다. dlportio 등이 있는걸로 알고 있습니다)
를 아래와 같은 방법으로 dll 로 읽어서 사용하실 수 있습니다.
cuperido
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HINSTANCE hiInstance;
HOOKPROC hpInput, hpOutput;
typedef short __stdcall __declspec(dllimport)Func_Inp32(short PortAddress);
typedef void __stdcall __declspec(dllimport)Func_Out32(short PortAddress, short Value);
Func_Inp32 *Inp32;
Func_Out32 *Out32;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
hiInstance = LoadLibrary("INPOUT32.DLL");
Inp32 = (Func_Inp32 *)GetProcAddress(hiInstance, "Inp32");
Out32 = (Func_Out32 *)GetProcAddress(hiInstance, "Out32");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
FreeLibrary(hiInstance);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
short itValue;
itValue = Inp32(0x378);
ShowMessage(itValue);
}
//---------------------------------------------------------------------------
나그네 님이 쓰신 글 :
: 제가 초보라서 이해가 잘 안되네요
: 어떻게 쓰는지 간단한 예제가 있으면 부탁합니다.
: 감사합니다.
:
:
:
: 유영인 Cuperido 님이 쓰신 글 :
: : Procedure Out32(PortAddress: Smallint; Value: Smallint); Stdcall; External 'InpOut32.DLL';
: : Function Inp32(PortAddress: Smallint) : Smallint; Stdcall; External 'InpOut32.DLL';
: :
: : 이 형태로 정의되어 있으니 DLL에서 불러서 사용하시면 될 것 같습니다.
: :
: : 0x300을 읽을 수 있을지는 모르겠습니다. 실질적으로 Windows NT 버젼 (2000, XP 포함)
: : 에서는 포트를 95/98 버젼과 다르게 직접 억세스 할 수 없으며, 또한 억세스를 권한을
: : 받아서 하더라도 가벼운 포트가 아니면 (시리얼, 패러럴 등) 직접적으로 억세스가
: : 불가능합니다.
: :
: : 이러한 경우 DDK를 받으셔서 VxD 파일을 만드시든지 해서, 장치에 대한 드라이버를
: : 따로 만들어 주셔야 합니다.
: :
: :
: : cuperido
: :
: : 나그네 님이 쓰신 글 :
: : : 저는 포트(0x300)을 읽을려고합니다.
: : : 근디 잘 안되어서요
: : : 빌더 5용이 있음
: : : 공개좀 부탁합니다.
|