Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: crypt.dll c koodi vb koodiksi

justme [22.02.2005 00:02:04]

#

Tervehdys
olisikos täällä pätevää koodinvääntäjää joka ymmärtäisi miten tuommoinen dll:n alustus ja kutsuminen muutetaan c koodista visual basicin muotoon.

Eli kyseessä salasanapalikka crypt.dll joka pitäisi saada vb:llä toimimaan, epätoivoisten yritysten jälkeen en tuota itse ole saanut kuitenkaan toimimaan ja täältä varmaankin löytyy kokeneempia koodinvääntäjiä ongelman ratkaisemiseen.

Ohessa c lähdekoodia dll:n käytöstä.

crypt.h filussa:
/* Encrypt at most 8 characters from KEY using salt to perturb DES. */
extern char *crypt(const char *key, const char *salt);

/* Setup DES tables according KEY. */
extern void setkey(const char *key);

/* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt block in place. */
extern void encrypt(char *block, int edflag);

ja pääohjelmassa kutsu:
pw = crypt(password,"$1$abcdefgh$");

Blaze [22.02.2005 07:57:43]

#

Näin lonkalta, älä listi, jos menee väärin :)

Declare Function Crypt Lib "crypt.dll" (Password As String, MikäTuoLieneekään As String) As String

'255 merkkiä pitkä stringi (char-array)
Dim pw As String * 255
'Täytetään Stringi nollatavuilla, että se oikeasti vie muistissa tilaa
pw = String(0, 255)
pw = Crypt(passu, "$1$abcdefgh$")
'Siivotaan ylimääräset nollatavut pois
MsgBox(Trim(pw))

justme [22.02.2005 15:22:32]

#

jeps, näin tuota yritinkin jo alunperin paitsi Crypt pienellä c:llä mutta herjaa "bad dll calling convention".

tuota kutsun lainausmerkeissä olevaa rimpsua ihmettelin, mitäkö ne nuo $ merkit tässä tapauksessa mahtavat merkata?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta