Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - patilanz

#91
Hola tengo esto:
Código (cpp) [Seleccionar]
bool SaveBeep(int a, int b){
int *c = new int(2);
c[0] = a;
c[1] = b;
if (!CreateThread(0, 0, beepThread, (LPVOID)c, 0, 0))
return 0;
return 1;
}

DWORD WINAPI beepThread(LPVOID p){
int * a = (int*)p;
Beep(a[0], a[1]);
delete[]a;
return 0;
}


Error de memoria en delete[]a;
También probé:
Código (cpp) [Seleccionar]
delete &a[0];
delete &a[1];

pero sigue igual.
Primero probé así pero no recibía los int
Código (cpp) [Seleccionar]
bool SaveBeep(int a, int b){
int c[2] = { a, b };
if (!CreateThread(0, 0, beepThread, (LPVOID)c, 0, 0))
return 0;
return 1;
}

DWORD WINAPI beepThread(LPVOID p){
int * a = (int*)p;
Beep(a[0], a[1]);
return 0;
}


Ideas??

Un saludo
#92
Programación C/C++ / Re: flose sin argumentos
18 Agosto 2015, 16:18 PM
Cita de: ivancea96 en 18 Agosto 2015, 14:29 PM
No funciona.

Hacer eso es como poner:
Nombre;

Poner eso no va a hacer que salga esa variable por pantalla. Una función es una dirección de memoria. Ponerla así, simplemente no hace nada.

Pensaba lo mismo antes de probarlo con visual studio 2013
#93
Programación C/C++ / fclose sin argumentos
18 Agosto 2015, 14:21 PM
Código (cpp) [Seleccionar]
int main(int argc, char *argv[])
{
char Nombre[20];
FILE *archivo;
char letras[1000];
archivo = fopen("config.txt", "r");
fgets(letras, 1000, archivo);
strcpy(Nombre, letras);
printf("%s\n", Nombre);
fclose;
system("PAUSE");

return EXIT_SUCCESS;
}


En la parte de fclose; porque funciona sin ningún argumento???

Un saludo
#94
A veces hago esto:

Código (cpp) [Seleccionar]
#include <string>
if(string(cadena) == string(cadena2))


Un saludo xD
#95
Cita de: ivancea96 en 16 Agosto 2015, 13:27 PM
Alocar xD *reservar*

¿Con vector<string> split(string str,char c); te da problemas?

Reservar, oops xD
Código (cpp) [Seleccionar]
vector<string> split(string str, char c){
vector<string> strings;
stringstream stream(str);
string item;
while (getline(stream, item, c)){
strings.push_back(item);
}
return strings;
}

Código (cpp) [Seleccionar]
typedef vector<string>(*_split)(string,char);
//...
vector<string> strings = split(test, ' ');


Error: 0xC0000005: Infracción de acceso al leer la ubicación 0x0111EFFC.
#96
Hola tengo una DLL que exporta esta función:

Código (cpp) [Seleccionar]

//Al principio era: vector<string> split(string str,char c);
void split(string str, char c,vector<string>* strings){
stringstream stream(str);
string item;
while (getline(stream, item, c)){
strings->push_back(item);
}
}


Luego:
Código (cpp) [Seleccionar]
HMODULE lib = LoadLibrary("C:\\Users\\Dimitar\\Documents\\Visual Studio 2013\\Projects\\BasicTools\\Release\\BasicTools.dll");
if (lib == NULL){
e("Library failed to load!");
}
_split split = (_split)GetProcAddress(lib, "split");
if (!split){
e("Failed to load split!");
}
string test = "Hola me llamo Jose!";
vector<string> strings;
split(test, ' ', &strings);
for (auto str : strings){
cout << str << endl;
}


Recibo error por alocar memoria, me lo esperaba...
Hay alguna manera de exportar vector y string?

Un saludo
#98
Gracias, código mejorado.
Lo hago porque no quiero poner cada vez L delante de un string porque me gusta utilizar multibyte.

Si windows trabaja internamente con Unicode si utilizo la API W optimizo mi programa ?
Desde que versión de Windows se utiliza Unicode de forma interna, o desde siempre ?
#99
Programación C/C++ / Convertir LPWSTR a char **
12 Agosto 2015, 11:22 AM
Hola, se les ocurre mejor manera de convertir un LPWSTR a char **;
Código (cpp) [Seleccionar]
int argc;
LPWSTR *_argv = CommandLineToArgvW(GetCommandLineW(), &argc);
char ** argv = new char*[argc * 200];
for (int i = 0; i < argc; i++){
argv[i] = new char[200];
wcstombs(argv[i], _argv[i], 200);
}



for (int i = 0; i < argc; i++){
delete [] argv[i];
}
delete[] argv;


Un saludo
#100
Cita de: engel lex en  3 Agosto 2015, 11:16 AM
no hay ninguna manera en que pueda probar que es lo que pasa... pero recomiendo usar el cls justo antes de la impresión para evitar el parpadeo

El cls no mejora nada. También probé con imprimir cada carácter en su sitio pero veo que tarda todavía mas:

Código (python) [Seleccionar]
def Mprint(m):
r = '\n'
for i,x in enumerate(m):
for j,y in enumerate(x):
if i == pos.y and j == pos.x:
r += (Fore.RED + '\033[' + str(i) + ';' + str(j) + 'H' + y)
elif y == ' ':
r += (Fore.WHITE + '\033[' + str(i) + ';' + str(j) + 'H' + y)
else:
r += (Fore.WHITE + '\033[' + str(i) + ';' + str(j) + 'H' + y)
print r,


Por ahora no se me ocurre otra cosa