|
Mostrar Mensajes
|
Páginas: [1] 2
|
3
|
Programación / Programación C/C++ / Re: MCM no es un miembro de std ayuda
|
en: 18 Noviembre 2017, 16:49 pm
|
Esto está mal:
MCM = std::MCM(A, B);
std::MCM(A, B) no puede ser una funcion de std porque está definido como int en el programa. Seguro que este código lo has desarrollado tú?
Suerte.
PD: las conparaciónes if( A=B) deben ser if( A==B).
|
|
|
4
|
Programación / Programación C/C++ / Re: Adaptar C++ CLR a C++ Win32
|
en: 18 Noviembre 2017, 16:40 pm
|
Esto sería una sencilla traducción, claro está faltan algunas cosas como situar el cursor, etc.
using namespace std;
#include <windows.h> #include <mmsystem.h> #include <conio.h>
#pragma comment(lib, "Winmm.lib")
int main() { char Opcion; printf("Menu\n"); printf("A - Abrir Bandeja\n"); printf("C - Cerrar Bandeja\n"); do { Opcion = _getch(); } while (Opcion != 'A' && Opcion != 'C'); switch (Opcion) { case 'A': printf("Abriendo...\n"); mciSendStringA("set CDAudio door open", NULL, NULL, NULL); printf("Abierto.\n"); break; case 'C': printf("Cerrando...\n"); mciSendStringA("set CDAudio door closed", NULL, NULL, NULL); printf("Cerrado.\n"); break; } return 0; }
|
|
|
6
|
Programación / Programación C/C++ / Re: Switch y case
|
en: 8 Agosto 2017, 12:41 pm
|
Saludos, la sentencia funciona por valores por separado pero podemos agrupar por valores al omitir break;
Caso básico sería:
switch(dia){ case 1: Funcion1(); break; case 2: Funcion2(); break; case 3: Funcion3(); break; ------ case 30: Funcionx(); break; }
Caso de agrupar por valores sería:
switch(dia){ case 1: case 2: Funcion1y2(); break; case 3:case 4:case 5: Funcion345(); break; ------ case 30: Funcionx(); break; }
Para el caso de un rango seria incluir todos los valores: switch(dia){ case 1:case 2:case 3:case 4:case 5: <----> case 15: Funcion1_15(); break; ------ case 30: Funcionx(); break; }
También puedes hacer lo siguiente:
switch(dia){ case 30: Funcion30(); break; default: Funcionx(); break; }
Con esto conseguiríamos hacer un caso para el día 30 y el resto de los días se ejecutaría el caso por defecto (default:).
Espero haberte ayudado.
|
|
|
8
|
Programación / Programación C/C++ / Re: Urgente apuntadores en agenda eliminar
|
en: 3 Agosto 2017, 13:37 pm
|
Saludos IrvWinchester:
El error lo tienes en la funcion agregar(), te indico el codigo modificado que funciona:
void agregar(){ agenda *nuevo; nuevo = (agenda *)malloc(sizeof(agenda)); //reservando la memoria
---------------------------- nuevo->sig= NULL;
if(primero==NULL){ primero=nuevo; ultimo=nuevo; // FALTA NULL A PUNTERO ANTERIOR nuevo->ant = NULL; } else{ ultimo->sig=nuevo; // FALTA ASIGNAR EL PUNTERO ANTERIOR para en nuevo elemento nuevo->ant = ultimo; ultimo=nuevo; } ------------------------------- }
Espero haberte ayudado. Un saludo.
|
|
|
9
|
Programación / Programación C/C++ / Ejecución asincrona de consultas mediante ADO C++
|
en: 3 Agosto 2017, 07:35 am
|
Saludos, tengo problemas para ejecutar consultas con ADO C++. Uso ADO en C++ importando la libreria:
#import "C:\\Program Files (x86)\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF", "EndOfFile")
El problema parece ser que las consultas se ejecutan de manera asincrona. Al eliminar un registro de la base de datos y volver a cargar la tabla no se refleja el cambio hasta pasado algún tiempo. Esto ocurre al usar el método Command->Execute(NULL, NULL, adCmdText | adExecuteNoRecords);
La conexión a la Base de datos la configuro de la siguiente manera:
// CadenaDeConexion = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet // OLEDB:Database Locking Mode=1;Data Source=Base de datos.mdb;Mode=Share Deny None;Jet // OLEDB:Engine Type=3;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet // OLEDB:SFP=False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without // Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System // Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet // OLEDB:Global Bulk Transactions=1" CoInitialize(NULL); Conexion.CreateInstance(__uuidof(ADO::Connection)); Conexion->Open(CadenaDeConexion, L"", L"", adConnectUnspecified); Comando.CreateInstance(__uuidof(Command)); Comando->ActiveConnection = Conexion;
Para consultas de ejecucion uso el método: void DB::EjecutaSQL(wchar_t SQL){ Comando->CommandText = SQL; Comando->Execute(NULL, NULL, adCmdText | adExecuteNoRecords); } Y para obtener el recordset uso el método: void DB::CreaTabla(wchar_t SQL) { Tabla.CreateInstance(__uuidof(ADO::Recordset)); Tabla->Open((wchar_t*)SQL, (IDispatch *)Conexion, adOpenKeyset, adLockOptimistic, adCmdText); } Estoy bastante perdido, si alguién domina ADO se agradecería alguna indicación.
Gracias, un saludo.
|
|
|
|
|
|
|