1. |
C++ DLL hivasa Delphibol (mind) |
32 sor |
(cikkei) |
2. |
program kilovese (mind) |
6 sor |
(cikkei) |
3. |
RE: *** HIX CODER *** #1254, i/o (mind) |
44 sor |
(cikkei) |
4. |
Re: Sinus, Cosinus, geoetria (mind) |
27 sor |
(cikkei) |
5. |
Re: Delphi DLL func hivas ket PChar (mind) |
32 sor |
(cikkei) |
6. |
re: Delphi DLL func hivas ket PChar változóval (mind) |
27 sor |
(cikkei) |
|
+ - | C++ DLL hivasa Delphibol (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Sziasztok!
Tegnapi kis problemammal nem boldogulvan, kozze tennem a forrast is. Aki tud se
gitsen egy legyszivesert.
//C++ DLL:
extern "C" __declspec(dllexport) int WINAPI Test1(char *xHostIP,char *xSendStr)
{
sprintf(xHostIP,"-- xHostIP --\0");
sprintf(xSendStr,"-- xSendStr --\0");
return 1;
}
//Delphi hivas:
function Test1(xHostIP: PChar; xSendStr: PChar
) : Integer; external 'FexSSL1.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
xSendStr: string;
xHostIP: string;
;
Elore is koszi
fex
(webes bekuldes, a bekuldo gepe: pretoria-54.budapest.interware.hu)
|
+ - | program kilovese (mind) |
VÁLASZ |
Feladó: (cikkei)
|
sziasztok
Egy kerdes, Ki lehet valahogy loni(bezaratni) win98 dos shell bol egy windows
alkalmazast ?
druss42
|
+ - | RE: *** HIX CODER *** #1254, i/o (mind) |
VÁLASZ |
Feladó: (cikkei)
|
... hogy Delphiben, vagy
> TP ben, hogy tudnék printer portot programozni.
> Ledeket szeretnék villogtatni, vagy fordítva,
> tehát megy-e 5V a bemenetekre vagy sem.
>
Hirtelen csak C-ben van megoldasom, de ezt pillanat alatt at lehet
Pascalra irni.
Szia: Feri.
void Set_P_Data(unsigned int p_portnum, unsigned int D){
unsigned int pc = 0;
if ((p_portnum > 2) || (p_portnum < 1)) p_portnum = 2;
switch (p_portnum){
case 1: pc = 0x0378;
break;
case 2: pc = 0x0278;
break;
}
_outp(pc, (_inp(pc) | D));
/*
(9) D7, (18) GND
(8) D6, (19) GND
(7) D5, (20) GND
(6) D4, (21) GND
(5) D3, (22) GND
(4) D2, (23) GND
(3) D1, (24) GND
(2) D0, (25) GND
*/
};
void Clear_P_Data(unsigned int p_portnum, unsigned int D){
unsigned int pc = 0;
if ((p_portnum > 2) || (p_portnum < 1)) p_portnum = 2;
switch (p_portnum){
case 1: pc = 0x0378;
break;
case 2: pc = 0x0278;
break;
}
_outp(pc, (_inp(pc) & (0xff - D)));
};
|
+ - | Re: Sinus, Cosinus, geoetria (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hell CODERek!
> Szuksegem lenne arra, mikent szamolhato ki egy radianban megadott szog
> sinusa, illetve cosinusa, azaz mit tartalmaz a Sin es a Cos fuggveny. Ha
> lehet, ne az Assemblys megoldast kuldjetek el! :)
Vannak sinus szamolo eljarasok (pl. a Pascal-e), amik eleve radianban
kerik az erteket.
De atszamolhatod ugy az ertekeket, hogy:
1 radian = 180/pi fok.(180/pi = kb. 57.3, csak hogy ertsd, mire gondolok)
Szoval, ha a fuggvenyed fokokban szamol, akkor csinald igy:
x = a megadott szog radianban
Sinus( x * 180 / pi )
Remelem, igy gondoltad...
> Emellett adodott egy geometriai problemam, ami elso hallasra egyszerunek
> tunik, de sehogy sem tudtam megoldani:
>
> Adott egy hur, es a hozza tartozo koriv. Mekkora a kor sugara. Egy dolog
> biztos: egyertelmuen fuggvenye a hurhossza a sugarnak es a korivnek, tehat
> megoldas biztosan van.
>
> Elore is koszonom a segitseget!
--
| Cumi | mailto: |
|
+ - | Re: Delphi DLL func hivas ket PChar (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Mivel csak maganba nem sikerult, igy akkor ide is :
> Egy DLL-ben szereplő függvényt szeretnék elérni Delphibol. Az
eredeti func
C++-ban van irva:
extern "C" __declspec(dllexport) int WINAPI Test1(char *xHostIP,char *xSendStr)
{Itt a ket string erteke megvaltozik !}
Ezzel a Delphi koddal szeretnem elerni:
function Test1(var xHostIP: PChar ;xSendStr: PChar) : Integer; external 'FexSSL
1.dll';
--=< >=--
Aljas modon nem probaltam ki, de vhogy igy allnek neki :
type TTest1=function( var xHostIP, xSendStr : PChar): Integer; stdcall;
// ha jol ertettem, akkor a C & Delphi mashogy kezeli a stack-ot. A
'STDCALL' C szeru kezelest ir elo
var Test1 : TTest1;
dllHandle : THandle;
;
// innen-onnan olloztam, ugyhogy lehet, hogy sok baja lesz :)
Udv: Tibor
|
+ - | re: Delphi DLL func hivas ket PChar változóval (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello,
> Felado : [Hungary]
Azert krepal be a programod, mert a PChar egy eleg dinamikus dolog, tehat
az altala foglalt memoria anny byte, ahny karakter van benne, plusz a
vegen egy #0 Ha ures a string amit atadsz, akkor baj lehet, mert a C-s Dll
klasszul beleirja a szoveget az 1 byte meretu mem teruletedre.
Ugy talan megoldhato a dolog (nem probaltam ki, de most ez jutott az eszembe)
hogy elore lefoglalasz a PChar-odnak egy eleg nagy helyet, amibe nyugodtan lehe
t irkalni.
pl:
var p:pointer;
lpS:PChar;
getmem(p,16384);
lpS:=p; // ha igy nem megy, akkor talan: lpS:=pchar(p);
{DLL hivas}
Szerintem igy mukodhet a dolog. A vegen valoszinuleg fel kell szabaditani a P-t
-> freemem(p);
udv:
-marci
|
|