Ciao a tutti.
Sono un principiante e stavo cercando di fare un programma per scrivere nel registro prendendo dei dati da un file .ini.
Dev c++ compila il file ma quando lo esegue si blocca e mi compare la schermata di windows che dice che il programma ha smesso di funzionare.
il codice è questo (cancellando alcuni parti sono arrivato alla conclusione che l'errore sia nella prima parte, ma non ne sono proprio sicuro):
codice:
#include <stdlib.h>
#include <string.h>
#include <windows.h>
char ini_file[8]="set.ini";
int read_ini_sys();
int read_ini_sys()
{
int sys_type;
sys_type=GetPrivateProfileInt("Computer","Sys",64,ini_file);
return sys_type;
}
char read_ini_name();
char read_ini_name()
{
char* result;
char name;
name=GetPrivateProfileString("File","Name","",result,250,ini_file);
return name;
}
char read_ini_dir();
char read_ini_dir()
{
char* result;
char dir;
dir=GetPrivateProfileString("File","Dir","",result,500,ini_file);
return dir;
}
main ()
{
int sys;
char* name;
char* dir;
sys=read_ini_sys();
name[100]=read_ini_name();
dir[500]=read_ini_dir();
char* a64;
char* a32;
char* b;
a64="reg add \"HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\" /v ";
a32="reg add \"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" /v ";
switch (sys)
{
case 64 :
b=strcat(a64,name);
break;
case 32 :
b=strcat(a32,name);
break;
}
char* c=" /t REG_SZ /d \"";
char* d=strcat(b,c);
char* e=strcat(d,dir);
char* f="\" /f";
char* fine=strcat(e,f);
system(fine);
return 0;
}
Grazie a tutti quelli che risponderanno.