Lettura del file di licenza da RLM con C # (traduzione da C ++ a C #)
-
22-07-2019 - |
Domanda
Sto utilizzando il gestore delle licenze Reprise RLM per la ricerca dell'attivazione di Internet. Non riesco a capire come ottenere il file di licenza dal server web in un file di testo con C # (sono anche molto nuovo in C #).
RLM viene fornito con un esempio in C ++ ma non riesco a tradurlo.
Il mio codice (per la demo) è simile al seguente:
int stat = RLM.rlm_act_request(handle, "http://www.reprisesoftware.com", "rlmactdemo", activationKey, "", "", 1, "", new byte[RLM.RLM_MAX_LINE+1]);
if (stat == 0||stat == 1){
//Successful connection
//Read license file and write to local machine
}
rlm_act_request
stabilisce e verifica la connessione. Una volta stabilito, come posso accedere al file e scriverlo in un file locale?
Il codice C ++ per qualunque cosa accada, se l'istruzione è la seguente:
char name[100];
char license[100];
int try;
FILE *f, *fopen();
stat = 1;
for (try=0; try<100; try++)
{
sprintf(name, "a%d.lic", try);
f = fopen(name, "r");
if (f == (FILE *) NULL)
{
f = fopen(name, "w");
if (f)
{
fprintf(f, "%s\n", license);
fclose(f);
break;
}
else
{
printf("Error writing license file \"%s\"\n", name);
stat = -1;
break;
}
}
}
Qual è l'equivalente in C #?
Soluzione
Beh, è ??stato sorprendentemente facile. Si scopre che il 'nuovo byte []' che viene passato a rml_act_request () contiene il contenuto del file di licenza. Tutto quello che dovevo fare era renderlo una variabile locale, convertirlo in stringa e scriverlo in file usando TextWriter.WriteLine ();
Vorrei che questo fosse stato documentato da qualche parte ...