C++ puntare a un indirizzo

Pubblicità

axl1993

Utente Attivo
Messaggi
218
Reazioni
8
Punteggio
38
Ciao a tutti, devo fare un semplice programmino ma ho una scarsa conoscenza del C++ e mi servirebbe che qualcuno mi aiutasse. Quello che devo fare è stampare a schermo un valore che si trova in un indirizzo di memoria determinato (che conosco).

:help: Aiutatemi per favore :help:
 
Prova a mettere l'indirizzo in un puntatore e dereferenziare il puntatore stesso per accedere alla variabile :look:
 
Pointers
Pointers
Pero' se intendi accedere ad un indirizzo specifico di locazione, in stile 8086
Tipo Segmento e indice, allora penso che bisogna utilizzare le routines in stile assembler.
Probabile che i compilatori sotto windows, in modo protetto,
non rendono accessibile la memoria direttamente. :sisi:
cmq. se speighi meglio cosa vuoi fare..
 
che valore è, perché se hai l'indirizzo iniziale, ma non il tipo (int,float ecc), non si sa quanti sono i bit che lo compongono e quindi partendo da quell'indirizzo non si sa quanti bit devi leggere

ps: sono anni che non uso il c++, magari sto dicendo cavolate
 
Quello che avevo intenzione di fare è un programma che prenda dei dati da un altro programma (che è un gioco) per poi mandarli in un database online. Per spiegarmi meglio io gioco a un gioco strategico di massa (www.strongholdkingdoms.com) nel quale devo spesso scambiare merci con i miei amici e quindi dobbiamo dire quante merci, a che villaggio, quanta roba c'è, quanta ce ne può stare etc etc, quindi vorrei fare un piccolo sito in cui siano visibili tutti i dati necessari in modo da far girare le informazioni in modo rapido ed efficace.

Secondo voi è possibile fare questa cosa? Qualcuno sarebbe disposto ad aiutarmi (anche proprio a livello sintattico perchè non me ne intendo)? Pongo già un limite accettabile: il tutto funziona (ovviamente) solo quando il client ha aperto il gioco.

L'aiuto di qualcuno aferrato in questa materia sarebbe molto apprezzato.
:)
 
posso dirti che la cosa non è semplice come tu immagini

nei moderni sistemi operativi ogni processo ha un suo spazio d'indirizzamento virtuale, per cui se tu crei un programma e scrivi

void *a = 0x98001843;

non pensare minimamente che quella sia la locazione di memoria 98001843, sarà semplicemente una locazione nello spazio d'indirizzamento del processo corrente

per fare quello che vuoi tu o il programma del gioco ha un metodo suo per esportare i propri dati o patchi l'eseguibile inserendovi il codice che ti serve e fai le cose che devi fare

ma si tratta di cose che decisamente sono fuori portata nel tuo caso....dovresti cominciare a studiarti un pò di puntatori, di architettura x86, di organizzazione della memoria, memoria virtuale, ecc....
 
Ok grazie dei chiarimenti, proprio quello che volevo sentir dire :) (non mi riferisco al fatto che sia una cosa complicata perchè lo sapevo già)
 
Per farla molto più semplice, se si tratta soltanto di punteggi da comunicare ad un server (quindi anche se tarda un secondo non succede nulla:)), potresti usare come mezzo di trasferimento tra due programmi un file (magari temporaneo)...

Ciao!
 
Per farla molto più semplice, se si tratta soltanto di punteggi da comunicare ad un server (quindi anche se tarda un secondo non succede nulla:)), potresti usare come mezzo di trasferimento tra due programmi un file (magari temporaneo)...

Ciao!

il suo problema è diverso, ha un programma con dei suoi dati e vuole accedere a quei dati

il punto è capire se è possibile, ad esempio, usare un'eventuale api del gioco per accedere ai dati direttamente sul server, oppure se bisogna prenderli dal client...se il client stocca i dati in un file o meno e in che formato

c'è da fare uno studio del sistema in questione per capire come agisce e comunica con i client
 
posso dirti che la cosa non è semplice come tu immagini

nei moderni sistemi operativi ogni processo ha un suo spazio d'indirizzamento virtuale, per cui se tu crei un programma e scrivi

void *a = 0x98001843;

non pensare minimamente che quella sia la locazione di memoria 98001843, sarà semplicemente una locazione nello spazio d'indirizzamento del processo corrente


per fare quello che vuoi tu o il programma del gioco ha un metodo suo per esportare i propri dati o patchi l'eseguibile inserendovi il codice che ti serve e fai le cose che devi fare

ma si tratta di cose che decisamente sono fuori portata nel tuo caso....dovresti cominciare a studiarti un pò di puntatori, di architettura x86, di organizzazione della memoria, memoria virtuale, ecc....
Qesto e' il guaio. :asd:
quasi quasi rimpiango i tempi del glorioso MSDOS. :doh:
 
Ragazzi sono appena tornato, grazie per tutte le risposte, leggendo velocemente ho visto che molti di voi hanno centrato il punto. Datemi il tempo di leggere meglio fare qualche ricerca e vi rispondo.

Grazie ancora :)
 
Pubblicità
Pubblicità
Indietro
Top