|
Mostrar Temas
|
Páginas: [1] 2
|
1
|
Programación / Programación C/C++ / TLS
|
en: 16 Octubre 2011, 17:44 pm
|
amigoz, quisiera saber acerca de TLS cuando usarlo en que casos me conviene usarlo y como se usa. me han recomendado usarlo pero no se como, quisiera saber mas acerca de la utilidad y de como/cuando aplicarlo, un ejemplo algo, gracias
|
|
|
2
|
Programación / Programación C/C++ / callbacks dentro de clases
|
en: 10 Octubre 2011, 18:51 pm
|
estuve trabajando con callbacks pero ahora estaba con otra api de windows que lleva callback (la api es SetTimer), y me lleva a la duda de si los callbacks pueden estar dentro de una clase, o si deben ser static, preguntas como esas... por ejemplo en este codigo que ya lo compile pero todavia no me anda XD http://www.codeproject.com/KB/cpp/SetTimer__non-static.aspxentiendo que no puede usar el callback directamente como static, porque se necesitaria acceder a miembros de clase y si el callback es static no puede, entonces se crea una funcion de "envoltura" para que sea llamada como si fuera el callback y esta funcion llama internamiente al callback que es static. entonces asumo que si puede ir dentro de una clase pero haciendo este truco de disimular el static dentro de una funcion wrapper. y entonces porque es o debe ser static el callback final?
|
|
|
3
|
Programación / Programación C/C++ / oerador de ambito :: o doble dos puntos
|
en: 10 Octubre 2011, 03:12 am
|
http://www.zator.com/Cpp/E4_9_19.htmhttp://www.hackingballz.com/herramientas/manual-oficial-de-php/language.oop5.paamayim-nekudotayim.htmlhola, mirando unos codigos mesurgio una duda sobre un operador que nunca me enseniaron completamente, es el doble dos puntos, por ejemplo en el compilador dentro del main si pongo "::" sale un cartel con algunas opciones, pero en otros codigos mas precisamente en codigos de clases personalizadas, he visto como se llaman a funciones de windows usando ese operador, quisiera saber para que se hace esto, nunca lo supe por ahi es algo tonto pero no me lo enseniaron Uploaded with ImageShack.usunos ejemplos que encontree bool CAppGetReso::OnInit() { //! Initialize all image handlers. ::wxInitAllImageHandlers();
//~ Initialize all XRC handlers. wxXmlResource::Get()->InitAllHandlers();
//~ Return true to continue processing. return(true); }
VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime) { ::EnterCriticalSection(&lock); if(idEvent == pTimer) { KillTimer(NULL, pTimer); ResumeThread();
}
::LeaveCriticalSection(&lock); }
otro ejemplo class SimpleControl { public: SimpleControl (HWND hwndParent, int id) : _hWnd (GetDlgItem (hwndParent, id)) {}
void SetFocus () { ::SetFocus (_hWnd); }
// code is the HIWORD (wParam) static BOOL IsClicked (int code) { return code == BN_CLICKED; }
HWND Hwnd () const { return _hWnd; }
void Enable () { EnableWindow (_hWnd, TRUE); }
void Disable () { EnableWindow (_hWnd, FALSE); }
void SetFont (HFONT font) { SendMessage ( Hwnd (), WM_SETFONT, (WPARAM) font, MAKELPARAM(TRUE, 0)); } protected: HWND _hWnd; };
|
|
|
4
|
Programación / Programación C/C++ / como quitar el decorado de symbolos en clases exportadas
|
en: 9 Octubre 2011, 01:41 am
|
extern "C" class __declspec(dllexport) Datos { public: void valorar(int i){val=i;}; private: int i; }; hola estoy tratando de exportar una clase desde una dll para usarla en un programa, lo que qusiera es saber como quito el decoramiento de los exports de la dll ? ya estuve mirando al respecto http://msdn.microsoft.com/en-us/library/81h27t8c.aspxpero necesito como quitar el decoramiento de los exports si alguien sabe EI: juntando mensajes. no sabia que no se podia http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspxsegun este informe si se exporta una clase usando vc el programa que la va a usar debe ser compilado con el msmo compilador por la gracia del decoramiento de nombres. EI: juntando mensajes de nuevo.alguien que sepa puede explicar esto http://www.codeproject.com/KB/DLL/classesexportedusingLL.aspxosea la persona esta importando miembros de una clase externa (que esta en una dll), y para encontrar los nombres de los miembros usa getprocaddress pero los nombres no estan decorados como puede ser ?, si habia leido que la decoracion en una clase no se podia evitar (al menos en visual studio), pero esta persona usa visual studio otra pregunta seria si puedo usar getprocaddress de la misma forma que uso esta perzona pero pasandole como argumento el nombre decorado ya que decorado o no es un nombre espero alguna respuesta
|
|
|
6
|
Programación / Programación C/C++ / leer cadena de editbox
|
en: 5 Octubre 2011, 00:03 am
|
estoy tratando de leer el contenido que se ingresa a un editbox el cual esta en un dialogbox secundario .... encontre este codigo en visual basic que no entiendo muy bien pero trate de pasarlo a c o de entender al menos lo que hace, pero no entiendo como hacer esto aun Public Function GetTextBoxLine(hWnd As Long) As String 'INPUT: hWnd = Handle to text box 'OUTPUT: Text of specified TextBox Control
Dim lngLineCount As Long Dim lngLineNumber As Long Dim lngRet As Long Dim lngLen As Long Dim lngFirstCharPos As Long Dim bytBuffer() As Byte Dim strAns As String
'get number of lines lngLineCount = SendMessage(hWnd, EM_GETLINECOUNT, 0, 0&)
For lngLineNumber = 0 To lngLineCount - 1 'first character position of the line lngFirstCharPos = SendMessage(hWnd, EM_LINEINDEX, lngLineNumber, 0&)
'length of line lngLen = SendMessage(hWnd, EM_LINELENGTH, lngFirstCharPos, 0&)
ReDim bytBuffer(lngLen) As Byte
bytBuffer(0) = lngLen
'text of line saved to bytBuffer lngRet = SendMessage(hWnd, EM_GETLINE, lngLineNumber, bytBuffer(0))
If lngRet Then strAns = strAns & Left$(StrConv(bytBuffer, vbUnicode), lngLen) End If Next
GetTextBoxLine = strAns End Function
asi esta mi aproximacion de codigo pero no es asi me parece long lngFirstCharPos = SendMessage(hWnd, EM_LINEINDEX, 0, 0); int lngLen = SendMessage(hWnd, EM_LINELENGTH, lngFirstCharPos, 0); chBuffer1[0] = lngLen; long lngRet = SendMessage(hWnd, EM_GETLINE, 0, chBuffer1);
antes lo habia hecho asi pero tampoco recivia nada char chBuffer1[MAX_PATH];//={0}; int t1=SendDlgItemMessage(hWnd, IDC_ART1, EM_GETLINE, 0, (LPARAM)(LPSTR)chBuffer1);//LB_GETSTRING
char asd[12]; sprintf(asd, "%d", t1);
MessageBox(hWnd,chBuffer1,asd,0);
agradezo su ayuda
|
|
|
8
|
Programación / Programación C/C++ / un dialogo dentro de otro
|
en: 4 Octubre 2011, 19:33 pm
|
hola estoy creando un programa que consta de un dialogbox y tiene dos listbox y algunos botones, lo que quisiera hacer es que al presionar uno de los botones se abra otra ventana de dialogo... mi pregunta seria que funcion debo usar o dialogbox o createdialog y si lo puedo hacer en la parte adonde detecto la presion del boton7 en el caso de mi codigo, en verdad no se bien adonde hacerlo tambien me serviria si alguien tiene algun codigo de ejemplo adonde ya usen dialogos que se abren dentro de otro existente (seria como decir dialogo padre y dialogos hijos), es que no encontre ningun ejemplo y soy iniciado en esto.. solo uso c , es decir no uso mfc INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_BUTTON7: { if( gbCaso == 1 ) {
/* Puedo crear el dialog box en este lugar al presionarse el boton ? */ } } } }
en el WinMain //creo el dailogo principal hDlg = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_DIALOG1), 0, (DLGPROC)DialogProc, 0);
EI: juntando mensajes.XD era algo facil pense que era mas complicado, con createdialog y luego algo como esto, gracias google if(g_hSD_d1 != NULL) { ShowWindow(g_hSD_d1, SW_SHOW); } y luego se libera desde su propio callback
|
|
|
9
|
Programación / Programación C/C++ / castiar un thiscall
|
en: 30 Septiembre 2011, 19:53 pm
|
estoi probando un metodo que encontre en el foro sobre inyectar una struct (de un usario eon) desde un exe sin dll. la idea mia es ir ahora a inisiar un thread en el momento q esta inyectada la estruct dada esta struct struct EstructIny { TipoCT pCT; void Func(void) { } } //La función que inyectaremos DWORD Inyectada ( EstructIny *data) { data->pCT(NULL, 0, (LPTHREAD_START_ROUTINE)data->Func, NULL, 0, NULL); return 0; } el error es de compilacion, porque no permite el tercer parametro de createthread no admite o no puede convertir el dato que le paso. como lo puede hacer alguien que sepa mas de c o c++ que yo, porque necesito pasarle ese parametro para que se complete la inyeccion e tratado de hacer algo asi DWORD dir = (DWORD)data->Func; pero dice 'type cast' : cannot convert from 'void (__thiscall EstructIny::*)(void)' to 'unsigned long'
como puedo hacer entonces ?
|
|
|
10
|
Programación / Programación General / desensamblador
|
en: 17 Agosto 2011, 01:07 am
|
me e plateado como actividad educativa tratar de hacer un desensablador basico , no se como acer uno, pero stube buscando informacion , por ejemplo encontre codigos o programas llamados ""disasemler engines"" no se si tiene algo que relasionarse con acer un desemsablador. yo por quisera hacerlo en c, aunque sea basico que reconozca los opcodes basicos y luego traspasarlos a nemonico automaticamnte, pero si alguno ha inentado hacer esto antes, quisiera que me oriente y parte saber lo de los engines que he mencionado, atentamente
|
|
|
|
|
|
|