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.