C Interface na pas

C,C++,C#

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
petersno
Ultimate člen
Ultimate člen
Príspevky: 2774
Dátum registrácie: 06 Aug 2011, 00:00
Bydlisko: ba
Vek: 63

C Interface na pas

Príspevok od používateľa petersno » 11 Nov 2012, 16:58

pani mam prosbu. potrebujem z ceckoveho interface na externy usbhiddriver.dll urobit interface pre delphi. slubil som tu jednemu kolegovy pomoc, bez tohoto sa neviem pohnut a cecko si so mnou moc nerozumie. v prilohe je rar { musel som to zabalit, pretoze pripony cs, aj dll "niesu povolene", snad je tam vsetko
usbhiddriver.RAR
(22.92 KiB) 31 stiahnutí
0

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: C Interface na pas

Príspevok od používateľa xmilos » 12 Nov 2012, 07:42

Tak nie som si isty, ale neda sa volat modul bez toho, aby sa rozlisovalo v com bol naprogramovany?
0

Používateľov profilový obrázok
petersno
Ultimate člen
Ultimate člen
Príspevky: 2774
Dátum registrácie: 06 Aug 2011, 00:00
Bydlisko: ba
Vek: 63

Re: C Interface na pas

Príspevok od používateľa petersno » 12 Nov 2012, 10:41

nie som si isty, co myslis tym modulom, ak dll, tak ano, mas pravdu. iba k volaniu treba interface pre ten dll subor, v ktorom su deklarovane typy a funkcie toho dll.
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: C Interface na pas

Príspevok od používateľa dan21 » 12 Nov 2012, 11:23

Neviem ako v Delphi ale napr. v c# si naimportujes dll-ku a namapujes "funkcie" ktore potrebujes
[DllImport("kernel32.dll", EntryPoint = "RtlMoveMemory")]
static extern void CopyMemory(IntPtr Destination, IntPtr Source, uint Length);
0

Používateľov profilový obrázok
petersno
Ultimate člen
Ultimate člen
Príspevky: 2774
Dátum registrácie: 06 Aug 2011, 00:00
Bydlisko: ba
Vek: 63

Re: C Interface na pas

Príspevok od používateľa petersno » 12 Nov 2012, 12:24

dynamic link library pozna aj delphi. vrtam sa v tom uz treti den a stale mi to nerobi spravne { evidentne nieco nechapem dostatocne :( } preto som zalozil tuto temu. ci by mi to niekto nepomohol obist vytvorenim niecoho takehoto z tych cs suborov

Kód: Vybrať všetko

{	toto je interface pre "mcHID.dll" kniznicu }

unit USB_mcHID;

interface

uses
   Windows, Classes, Messages;

const
   WM_HID_EVENT      = WM_APP + 200;
   NOTIFY_PLUGGED    = $0001;
   NOTIFY_UNPLUGGED  = $0002;
   NOTIFY_CHANGED    = $0003;
	 NOTIFY_READ       = $0004;

	 DLL_NAME  = 'mcHID.dll';

	function Connect( pHostWin : HWND ) : BOOL; stdcall; external DLL_NAME name 'Connect';
	function Disconnect : BOOL; stdcall; external DLL_NAME name 'Disconnect';
	function GetHandle ( pVendorID, pProductID : UINT ) : UINT; stdcall; external DLL_NAME name 'GetHandle';
	function GetInputReportLength ( pHandle : UINT ) : UINT; stdcall; external DLL_NAME name 'GetInputReportLength';
	function GetItem ( pIndex : UINT ) : UINT; stdcall; external DLL_NAME name 'GetItem';
	function GetItemCount : UINT; stdcall; external DLL_NAME name 'GetItemCount';
	function GetOutputReportLength ( pHandle : UINT ) : UINT; stdcall; external DLL_NAME name 'GetOutputReportLength';
	function GetProductID ( pHandle : UINT ) : UINT; stdcall; external DLL_NAME name 'GetProductID';
	function GetProductName ( pHandle : UINT; pText : LPSTR; pLen : UINT ) : UINT; stdcall; external DLL_NAME name 'GetProductName';
	function GetSerialNumber ( pHandle : UINT; pText : LPSTR; pLen : UINT ) : UINT; stdcall; external DLL_NAME name 'GetSerialNumber';
	function GetVendorID ( pHandle : UINT ) : UINT; stdcall; external DLL_NAME name 'GetVendorID';
	function GetVendorName ( pHandle : UINT; pText : LPSTR; pLen : UINT ) : UINT; stdcall; external DLL_NAME name 'GetVendorName';
	function GetVersion ( pHandle : UINT ) : UINT; stdcall; external DLL_NAME name 'GetVersion';
	function IsAvailable ( pVendorID, pProductID : UINT ) : BOOL; stdcall; external DLL_NAME name 'IsAvailable';
	function IsReadNotifyEnabled ( pHandle : UINT )  : BOOL; stdcall; external DLL_NAME name 'IsReadNotifyEnabled';
	function Read ( pHandle : UINT; pData : pointer ) : BOOL; stdcall; external DLL_NAME name 'Read';
	function ReadEx ( pVendorID, pProductID : UINT; pData : pointer ) : BOOL; stdcall; external DLL_NAME name 'ReadEx';
	function Write ( pHandle : UINT; pData : pointer ) : BOOL; stdcall; external DLL_NAME name 'Write';
	function WriteEx ( pVendorID, pProductID : UINT; pData : pointer ) : BOOL; stdcall; external DLL_NAME name 'WriteEx';

	procedure SetReadNotify ( pHandle : UINT; pValue : BOOL ) ; stdcall; external DLL_NAME name 'SetReadNotify';

implementation

end.
c# zatial nepoznam natolko, aby som to vytvoril sam a dobre :?
0

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: C Interface na pas

Príspevok od používateľa dan21 » 12 Nov 2012, 12:45

mne , ak som chybu (problem) tak na 95% to bolo v predavanych parametroch. Teda vlastne v datovych typoch. Ono sa mozu rovnako voalt v obidvoch jazykoch , ale struktura je ina. Skus hladat tym smerom
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok