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$");
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))
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?
Aihe on jo aika vanha, joten et voi enää vastata siihen.