Witam!
Mam pilną sprawę :/ na jutro muszę mieć to gotowe :( zostałem przyciśnięty..
Mam bibliotekę dll do obsługi procesora AT90S2313 przez port USB. W niej zdefiniowaną funkcję:
int __stdcall DoEEPROMWrite(uchar Address, uchar DataOutByte);
int __stdcall DoEEPROMRead(uchar Address, uchar * DataInByte);
Do pierwszej udało mi się odwołać bez problemu.. natomiast z drugą mam problem ponieważ poprzez wskaźnik DataInByte zwraca wartość.. tylko, że nie wiem jak ją odczytać :/
Potrzebuje pilnie pomocy :/
//$$---- Form CPP ----
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "main.h"
//---------------------------------------------------------------------------
extern "C" __declspec(dllimport) int DoEEPROMWrite(char Address, char DataOutByte);
extern "C" __declspec(dllimport) int DoEEPROMRead(char Address, char * DataInByte);
char tmp_znak;
//---------------------------------------------------------------------------
void EEPROMWrite(char adres, char znak)
{
HANDLE DLLHandle = LoadLibrary("IgorUSB.dll");
if(DLLHandle != NULL)
{
typedef (*aDoEEPROMWrite)(char,char);
aDoEEPROMWrite _DoEEPROMWrite = (aDoEEPROMWrite)GetProcAddress(DLLHandle, "DoEEPROMWrite");
if(_DoEEPROMWrite != NULL) _DoEEPROMWrite(adres,znak);
}
else // jeśli nie znaleziono biblioteki.
{
ShowMessage("Nie znaleziono wymaganej biblioteki 'IgorUSB.dll'");
}
}
void EEPROMRead(char adres)
{
HANDLE DLLHandle = LoadLibrary("IgorUSB.dll");
if(DLLHandle != NULL)
{
typedef (*aDoEEPROMRead)(char,char);
aDoEEPROMRead _DoEEPROMRead = (aDoEEPROMRead)GetProcAddress(DLLHandle, "DoEEPROMRead");
if(_DoEEPROMRead != NULL) _DoEEPROMRead(adres,tmp_znak);
}
else // jeśli nie znaleziono biblioteki.
{
ShowMessage("Nie znaleziono wymaganej biblioteki 'IgorUSB.dll'");
}
}
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TF_main *F_main;
//---------------------------------------------------------------------------
__fastcall TF_main::TF_main(TComponent* Owner)
: TForm(Owner)
{
HANDLE DLLHandle = LoadLibrary("IgorUSB.dll");
if(DLLHandle == NULL)
{
ShowMessage("Nie znaleziono wymaganej biblioteki 'IgorUSB.dll'");
B_zapis_tekstu->Enabled=false;
B_odczyt_tekstu->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TF_main::B_zapis_tekstuClick(TObject *Sender)
{
char ile_znakow,i,tmp_char;
ile_znakow=E_tekst->Text.Length();
for (i=0;i<ile_znakow;i++)
{
tmp_char=E_tekst->Text[i+1];
EEPROMWrite(i,tmp_char);
}
for (i=ile_znakow;i<127;i++) EEPROMWrite(i,0);
}
//---------------------------------------------------------------------------
void __fastcall TF_main::B_odczyt_tekstuClick(TObject *Sender)
{
EEPROMRead(2);
}
//---------------------------------------------------------------------------