elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  consejos sobre archivo de configuracion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: consejos sobre archivo de configuracion  (Leído 5,107 veces)
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
consejos sobre archivo de configuracion
« en: 17 Junio 2011, 09:59 am »

me hice un programita muy basico, para escuchar la radio via internet, algo muy simple, SysTray, y 4 llamadas a mciSendString [ Open, Play, Pause, Stop], el string del url lo saco desde Recurso, StringTable.
ahora se me ocurrio ampliarlo un poco, y hacerlo mas dinamico, y agregar un par de cositas, como por ejemplo, listar la programacion de la radio, y un par de osas para las cuales, creo que seria mas adecuado apartar del .exe cierta info.

osea lo que planeo hacer es un archivo de configuracion /playlist, con datos que extrairia e implementaria en el programa, como la grilla de programacion de la radio en question, nombre para tooltip, icono para Systray, y etc...
ahora lo unico que se me ocurrio es meter toda esa info en un archivo .dll y la verdad que me estanke y necesito asecoramiento de uds, aca al final dejo un ej de una dll de prueba que estoy haciendo,

estoy en VC++ 6.0. en WinApi
aclaro que no tengo mucha experiencia o conocimientos en VC++6.0


attachment:  test.rar


« Última modificación: 17 Junio 2011, 10:10 am por xkiz » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #1 en: 17 Junio 2011, 10:14 am »

.
yo usaría los recursos por medio de la dll:

BeginUpdateResource
UpdateResource
EndUpdateResource
... etc.
Ejemplo

una vez abierto el recurso puedes usar:
LoadString
LoadBitmap
P.D.: ¿solo unos pocos usuarios pueden subir archivos así como tu o como esta la cosa?

Dulces Lunas!¡.


« Última modificación: 17 Junio 2011, 10:30 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #2 en: 17 Junio 2011, 10:43 am »

ok, a lo que voy es que no se bien como armar el archivo.dll, osea.
STRINGTABLE:
101 nombre
102 nombre parte2
103 url Stream
 y cree un recurso DATA -> 1 con un archivo ini:
Código
  1. [mondayToFriday]
  2. prog01=01:00|Trasnoche Rock & Pop|Conduce: Tapa Martín|http://trasnoche.fmrockandpop.com
  3. prog02=05:00|Primera Data|Conduce: Marcos Menna\nDe las tribus urbanas, la más previsora.|
  4. prog03=06:00|No Somos Nadie|Conduce: Juan Pablo Varsky\nDe las tribus urbanas, la única que lucha por la existencia humana.|http:// nosomosnadie.fmrockandpop.com
  5. prog04=09:00|Cuál Es?|Conducen: Pergolini, de la Puente y Gantman\nCuál es la única tribu jamás dominada por nadie.http://:cuales.fm
  6. prog05=13:00|Tarde Negra|Conduce: Elizabeth Vernaci\nTarde Negra, de las tribus urbanas, la más ardiente.|http://:tardenegra.fmrockandpop.com
  7. prog06=16:00|Day Tripper|Conduce: Juan Di Natale\nUn poderoso tónico espiritual con el que pueden hacer viajar sin moverte un centímetro.|http://daytripper.fmrockandpop.com
  8. prog07=19:00|Falso Impostor|Conduce: Gillespi\nUn monarca sube a su torre de Babel para tocar el cielo y arrebatar el tesoro de la música.|http://falsoimpostor.fmrockandpop.com
  9. prog08=21:00|Apagá la Tele|Conduce: Gustavo Olmedo\n Toro Sentado Olmedo y su tropa de pieles rojas, te tomarán del cuero cabelludo hasta arrancarte del purgatorio televisivo. La única forma de evitar la cacería del zapping.|http://apagalatele.fmrockandpop.com
  10. prog09=23:00|Último Bondi|Conduce: Daniel Jiménez|http://ultimobondi.fmrockandpop.com
  11. [saturday]
  12. prog01=00:00|La de Dios|Conduce: Santiago Palazzo\nDe las tribus urbanas, la que se comunica con señales de humo.|http://ladedios.fmrockandpop.com
  13. prog02=03:00|Bonus Track|Conduce: Alejandro Lingenti|http://bonustrack.fmrockandpop.com
  14. prog03=07:00|El Triángulo de las Bermudas|Conduce: Maxi Martina|http://triangulo.fmrockandpop.com
  15. prog04=08:00|Cheque en Blanco|Conduce: Alfredo Zaiat\nDe las tribus urbanas, la que paga en especias.|http://chequeenblanco.fmrockandpop.com
  16. prog05=11:00|El Aguante|Conducen: Martín Souto y Pablo Gonzalez|http://elaguante.fmrockandpop.com
  17. prog06=13:00|Disco 2000|Conduce: Eduardo Ferrari|http://disco2000.fmrockandpop.comk
  18. prog07=16:00|La Hora Señalada|Conduce: Guillermo Hernández\nDe las tribus urbanas, la mas cosmopolita.|
  19. prog08=18:00|Ranking Rock & Pop|Conduce: Eduardo de la Puente|http://www.fmrockandpop.com/ranking
  20. prog09=21:00|Somos Rock|Conduce: Alejandro Nagy|http://somosrock.fmrockandpop.com
  21. [sunday]
  22. prog01=00:00|Rock & Pop In Concert|Conduce: Dani Jimenez|http://inconcert.fmrockandpop.com
  23. prog02=03:00|Rock & Pop Music||
  24. prog03=07:00|No Hay Mañana Para Vos|Musicaliza: Ricky Achaval|http://nohay.fmrockandpop.comh
  25. prog04=10:00|Jugala q' es Gratis|Conduce: Ramiro Quesada|http://jugala.fm
  26. prog05=14:00|Clásico de Clásicos|Conduce: Diego Jalfen|http://clasico.fmrockandpop.com
  27. prog06=18:00|La Casa del Rock Naciente|Conduce: Alfredo Rosso|http://lacasa.fmrockandpop.com
  28. prog07=20:00|Bombardeo del Demo|Conduce: Marcelo Martinez|http://bombardeo.fmrockandpop.com
  29. prog08=21:00|Tiempos Violentos|Conduce: Gustavo Olmedo.|http://tiemposviolentos.fmrockandpop.com
  30.  

o crear recurso DATA -> 1 con la misma estructura de StringTable, me es == , no que no se bien como seria acceder a ese recurso DATA, o cual seria la mejor/facil  para hacerlo, la dll.

@BlackZeroX lo de tu PD, no tiene nada raro, solo es un [ hr ] y una img de un clip con texto attachment y un link, nada especial ni raro....
En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #3 en: 17 Junio 2011, 14:45 pm »

bueno, perdon que re responda, pero con el trannscurso de la noche(Arg) logre agunos avances. Googlie y encontre LoadResource, FindResource, y etc, maso o menos ya tengo armado, abajo adjunto la dll para que vean y me digan que les parece o alguna sugerencia. el siguiente code uso para leer la data desde la dll:

Código
  1. #include "windows.h"
  2. #define MONDATOFRIDAY MAKEINTRESOURCE(25)
  3. #define SATURDAY MAKEINTRESOURCE(26)
  4. #define SUNDAY MAKEINTRESOURCE(27)
  5. //HGLOBAL global;
  6.  
  7. int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
  8. ///////////////////////////////////////////////////////////////////////////////////////////////
  9. //HGLOBAL global;
  10. HINSTANCE module = LoadLibrary("C:\\Users\\xkiz\\Desktop\\test\\Release\\Rock&Pop.dll");
  11.  
  12. if(module){
  13. OutputDebugString("LoadLibrary yes");
  14. HRSRC rsrc = FindResource(module, MAKEINTRESOURCE(2),SATURDAY);
  15. if(rsrc){
  16. OutputDebugString("FindResource yes");
  17. DWORD Size = SizeofResource(module, rsrc);
  18. HGLOBAL MemoryHandle = LoadResource(module,rsrc);
  19. if(MemoryHandle != NULL){
  20. OutputDebugString((LPCTSTR)MemoryHandle);
  21. }else{
  22. OutputDebugString("MemoryHandle no");
  23. }
  24. }else{
  25. OutputDebugString("FindResource no");
  26. }
  27. }else{
  28. OutputDebugString("LoadLibrary no");
  29. }
  30.  
  31. ///////////////////////////////////////////////////////////////////////////////////////////////
  32.  
  33. return 0;
  34. }
  35.  
  36.  

ahora me surge otra consulta, como habria que hacer para averifguar cuantos ID's hay en ese recurso?


attachment: test.rar (115.24 KB)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #4 en: 17 Junio 2011, 17:41 pm »

.
jeje no revisaste la liga al ejemplo de M$ que te puse, revisa el ejemplo de mi post anterior hay viene un código con la información respectiva para enumerar los recursos usa el api EnumResourceNames (Esta un ejemplo en la liga ejemplo de arriba).

pero por si las moscas:

Código
  1.  
  2. HGLOBAL hResLoad;   // handle to loaded resource
  3. HMODULE hExe;       // handle to existing .EXE file
  4. HRSRC hRes;         // handle/ptr. to res. info. in hExe
  5. HANDLE hUpdateRes;  // update resource handle
  6. LPVOID lpResLock;   // pointer to resource data
  7. BOOL result;
  8. #define IDD_HAND_ABOUTBOX   103
  9. #define IDD_FOOT_ABOUTBOX   110
  10.  
  11. // Load the .EXE file that contains the dialog box you want to copy.
  12. hExe = LoadLibrary(TEXT("hand.exe"));
  13. if (hExe == NULL)
  14. {
  15.    ErrorHandler(TEXT("Could not load exe."));
  16.    return;
  17. }
  18.  
  19. // Locate the dialog box resource in the .EXE file.
  20. hRes = FindResource(hExe, MAKEINTRESOURCE(IDD_HAND_ABOUTBOX), RT_DIALOG);
  21. if (hRes == NULL)
  22. {
  23.    ErrorHandler(TEXT("Could not locate dialog box."));
  24.    return;
  25. }
  26.  
  27. // Load the dialog box into global memory.
  28. hResLoad = LoadResource(hExe, hRes);
  29. if (hResLoad == NULL)
  30. {
  31.    ErrorHandler(TEXT("Could not load dialog box."));
  32.    return;
  33. }
  34.  
  35. // Lock the dialog box into global memory.
  36. lpResLock = LockResource(hResLoad);
  37. if (lpResLock == NULL)
  38. {
  39.    ErrorHandler(TEXT("Could not lock dialog box."));
  40.    return;
  41. }
  42.  
  43. // Open the file to which you want to add the dialog box resource.
  44. hUpdateRes = BeginUpdateResource(TEXT("foot.exe"), FALSE);
  45. if (hUpdateRes == NULL)
  46. {
  47.    ErrorHandler(TEXT("Could not open file for writing."));
  48.    return;
  49. }
  50.  
  51. // Add the dialog box resource to the update list.
  52. result = UpdateResource(hUpdateRes,    // update resource handle
  53.    RT_DIALOG,                         // change dialog box resource
  54.    MAKEINTRESOURCE(IDD_FOOT_ABOUTBOX),         // dialog box id
  55.    MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),  // neutral language
  56.    lpResLock,                         // ptr to resource info
  57.    SizeofResource(hExe, hRes));       // size of resource info
  58.  
  59. if (result == FALSE)
  60. {
  61.    ErrorHandler(TEXT("Could not add resource."));
  62.    return;
  63. }
  64.  
  65. // Write changes to FOOT.EXE and then close it.
  66. if (!EndUpdateResource(hUpdateRes, FALSE))
  67. {
  68.    ErrorHandler(TEXT("Could not write changes to file."));
  69.    return;
  70. }
  71.  
  72. // Clean up.
  73. if (!FreeLibrary(hExe))
  74. {
  75.    ErrorHandler(TEXT("Could not free executable."));
  76.    return;
  77. }
  78.  
  79.  

y para enumerar TODOS los recursos:

Código
  1.  
  2. HANDLE g_hFile;   // global handle to resource info file
  3. // Declare callback functions.
  4. BOOL EnumTypesFunc(
  5.       HMODULE hModule,
  6.       LPTSTR lpType,
  7.       LONG lParam);
  8.  
  9. BOOL EnumNamesFunc(
  10.       HMODULE hModule,
  11.       LPCTSTR lpType,
  12.       LPTSTR lpName,
  13.       LONG lParam);
  14.  
  15. BOOL EnumLangsFunc(
  16.       HMODULE hModule,
  17.       LPCTSTR lpType,
  18.       LPCTSTR lpName,
  19.       WORD wLang,
  20.       LONG lParam);
  21.  
  22.  
  23.  
  24. HMODULE hExe;        // handle to .EXE file
  25. TCHAR szBuffer[80];  // print buffer for info file
  26. DWORD cbWritten;     // number of bytes written to resource info file
  27. size_t cbString;     // length of string in szBuffer
  28. HRESULT hResult;
  29.  
  30. // Load the .EXE whose resources you want to list.
  31. hExe = LoadLibrary(TEXT("hand.exe"));
  32. if (hExe == NULL)
  33. {
  34.    // Add code to fail as securely as possible.
  35.    return;
  36. }
  37.  
  38. // Create a file to contain the resource info.
  39. g_hFile = CreateFile(TEXT("resinfo.txt"),   // name of file
  40.    GENERIC_READ | GENERIC_WRITE,      // access mode
  41.    0,                                 // share mode
  42.    (LPSECURITY_ATTRIBUTES) NULL,      // default security
  43.    CREATE_ALWAYS,                     // create flags
  44.    FILE_ATTRIBUTE_NORMAL,             // file attributes
  45.    (HANDLE) NULL);                    // no template
  46. if (g_hFile == INVALID_HANDLE_VALUE)
  47. {
  48.    ErrorHandler(TEXT("Could not open file."));
  49.    return;
  50. }
  51.  
  52. // Find all of the loaded file's resources.
  53. hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR),
  54.    TEXT("The file contains the following resources:\r\n\r\n"));
  55. if (FAILED(hResult))
  56. {
  57.    // Add code to fail as securely as possible.
  58.    return;
  59. }
  60.  
  61. hResult = StringCchLength(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), &cbString);
  62. if (FAILED(hResult))
  63. {
  64.    // Add code to fail as securely as possible.
  65.    return;
  66. }
  67.  
  68. WriteFile(g_hFile,       // file to hold resource info
  69.    szBuffer,            // what to write to the file
  70.    (DWORD) cbString,    // number of bytes in szBuffer
  71.    &cbWritten,          // number of bytes written
  72.    NULL);               // no overlapped I/O
  73.  
  74. EnumResourceTypes(hExe,              // module handle
  75.    (ENUMRESTYPEPROC)EnumTypesFunc,  // callback function
  76.    0);                              // extra parameter
  77.  
  78. // Unload the executable file whose resources were
  79. // enumerated and close the file created to contain
  80. // the resource information.
  81. FreeLibrary(hExe);
  82. CloseHandle(g_hFile);
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148. //    FUNCTION: EnumTypesFunc(HANDLE, LPSTR, LONG)
  149. //
  150. //    PURPOSE:  Resource type callback
  151. BOOL EnumTypesFunc(
  152.        HMODULE hModule,  // module handle
  153.        LPTSTR lpType,    // address of resource type
  154.        LONG lParam)      // extra parameter, could be
  155.                          // used for error checking
  156. {
  157.    TCHAR szBuffer[80];  // print buffer for info file
  158.    DWORD cbWritten;     // number of bytes written to resource info file
  159.    size_t cbString;
  160.    HRESULT hResult;
  161.  
  162.    // Write the resource type to a resource information file.
  163.    // The type may be a string or an unsigned decimal
  164.    // integer, so test before printing.
  165.    if (!IS_INTRESOURCE(lpType))
  166.    {
  167.        hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), TEXT("Type: %s\r\n"), lpType);
  168.        if (FAILED(hResult))
  169.        {
  170.            // Add code to fail as securely as possible.
  171.            return FALSE;
  172.        }
  173.    }
  174.    else
  175.    {
  176.        hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), TEXT("Type: %u\r\n"), (USHORT)lpType);
  177.        if (FAILED(hResult))
  178.        {
  179.            // Add code to fail as securely as possible.
  180.            return FALSE;
  181.        }
  182.    }
  183.  
  184.    hResult = StringCchLength(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), &cbString);
  185.    if (FAILED(hResult))
  186.    {
  187.        // Add code to fail as securely as possible.
  188.        return FALSE;
  189.    }
  190.  
  191.    WriteFile(g_hFile, szBuffer, (DWORD) cbString, &cbWritten, NULL);
  192.    // Find the names of all resources of type lpType.
  193.    EnumResourceNames(hModule,
  194.        lpType,
  195.        (ENUMRESNAMEPROC)EnumNamesFunc,
  196.        0);
  197.  
  198.    return TRUE;
  199. }
  200.  
  201. //    FUNCTION: EnumNamesFunc(HANDLE, LPSTR, LPSTR, LONG)
  202. //
  203. //    PURPOSE:  Resource name callback
  204. BOOL EnumNamesFunc(
  205.        HMODULE hModule,  // module handle
  206.        LPCTSTR lpType,   // address of resource type
  207.        LPTSTR lpName,    // address of resource name
  208.        LONG lParam)      // extra parameter, could be
  209.                          // used for error checking
  210. {
  211.    TCHAR szBuffer[80];  // print buffer for info file
  212.    DWORD cbWritten;     // number of bytes written to resource info file
  213.    size_t cbString;
  214.    HRESULT hResult;
  215.  
  216.    // Write the resource name to a resource information file.
  217.    // The name may be a string or an unsigned decimal
  218.    // integer, so test before printing.
  219.    if (!IS_INTRESOURCE(lpName))
  220.    {
  221.        hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), TEXT("\tName: %s\r\n"), lpName);
  222.        if (FAILED(hResult))
  223.        {
  224.            // Add code to fail as securely as possible.
  225.            return FALSE;
  226.        }
  227.    }
  228.    else
  229.    {
  230.        hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), TEXT("\tName: %u\r\n"), (USHORT)lpName);
  231.        if (FAILED(hResult))
  232.        {
  233.            // Add code to fail as securely as possible.
  234.            return FALSE;
  235.        }
  236.    }
  237.  
  238.    hResult = StringCchLength(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), &cbString);
  239.    if (FAILED(hResult))
  240.    {
  241.        // Add code to fail as securely as possible.
  242.        return FALSE;
  243.    }
  244.  
  245.    WriteFile(g_hFile, szBuffer, (DWORD) cbString, &cbWritten, NULL);
  246.    // Find the languages of all resources of type
  247.    // lpType and name lpName.
  248.    EnumResourceLanguages(hModule,
  249.        lpType,
  250.        lpName,
  251.        (ENUMRESLANGPROC)EnumLangsFunc,
  252.        0);
  253.  
  254.    return TRUE;
  255. }
  256.  
  257. //    FUNCTION: EnumLangsFunc(HANDLE, LPSTR, LPSTR, WORD, LONG)
  258. //
  259. //    PURPOSE:  Resource language callback
  260. BOOL EnumLangsFunc(
  261.        HMODULE hModule, // module handle
  262.        LPCTSTR lpType,  // address of resource type
  263.        LPCTSTR lpName,  // address of resource name
  264.        WORD wLang,      // resource language
  265.        LONG lParam)     // extra parameter, could be
  266.                         // used for error checking
  267. {
  268.    HRSRC hResInfo;
  269.    TCHAR szBuffer[80];  // print buffer for info file
  270.    DWORD cbWritten;     // number of bytes written to resource info file
  271.    size_t cbString;
  272.    HRESULT hResult;
  273.  
  274.    hResInfo = FindResourceEx(hModule, lpType, lpName, wLang);
  275.    // Write the resource language to the resource information file.
  276.    hResult = StringCchPrintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), TEXT("\t\tLanguage: %u\r\n"), (USHORT) wLang);
  277.    if (FAILED(hResult))
  278.    {
  279.        // Add code to fail as securely as possible.
  280.        return FALSE;
  281.    }
  282.  
  283.    hResult = StringCchLength(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), &cbString);
  284.    if (FAILED(hResult))
  285.    {
  286.        // Add code to fail as securely as possible.
  287.        return FALSE;
  288.    }
  289.  
  290.    WriteFile(g_hFile, szBuffer, (DWORD) cbString, &cbWritten, NULL);
  291.    // Write the resource handle and size to buffer.
  292.    hResult = StringCchPrintf(szBuffer,
  293.        sizeof(szBuffer)/sizeof(TCHAR),
  294.        TEXT("\t\thResInfo == %lx,  Size == %lu\r\n\r\n"),
  295.        hResInfo,
  296.        SizeofResource(hModule, hResInfo));
  297.    if (FAILED(hResult))
  298.    {
  299.        // Add code to fail as securely as possible.
  300.        return FALSE;
  301.    }
  302.  
  303.    hResult = StringCchLength(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), &cbString);
  304.    if (FAILED(hResult))
  305.    {
  306.        // Add code to fail as securely as possible.
  307.        return FALSE;
  308.    }
  309.  
  310.    WriteFile(g_hFile, szBuffer, (DWORD)cbString, &cbWritten, NULL);
  311.    return TRUE;
  312. }
  313.  
  314.  

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #5 en: 19 Junio 2011, 16:14 pm »

BlackZeroX gracias por la ayuda, pero ya lo resolvi a mi manera, osea explico:

puse la lista de Programas en StringTable como cualkier String comun y en RCDATA puse 7 ID's (uno por cada dia de la semana) con un string formado con los id's de cada programa. asi me es mas facil de parsearlo.

Código
  1. STRINGTABLE DISCARDABLE
  2. BEGIN
  3.    201                     "01:00|05:00|Trasnoche Rock & Pop|Conduce: Tapa Martín|http://trasnoche.fmrockandpop.com"
  4.    202                     "05:00|06:00|Primera Data|Conduce: Marcos Menna\nDe las tribus urbanas, la más previsora.|"
  5.    203                     "06:00|09:00|No Somos Nadie|Conduce: Juan Pablo Varsky\nDe las tribus urbanas, la única que lucha por la existencia humana.|http:// nosomosnadie.fmrockandpop.com"
  6.    204                     "09:00|13:00|Cuál Es?|Conducen: Pergolini, de la Puente y Gantman\nCuál es la única tribu jamás dominada por nadie.http://:cuales.fm"
  7. // seguiria pero lo corto aca total es solo ilustrativo....
  8. END
  9.  
  10. 1 RCDATA DISCARDABLE // Sunday's
  11. BEGIN
  12. "401,402,403,404,405,406,407,408"
  13. END
  14.  
  15. 2 RCDATA DISCARDABLE //Monday's
  16. BEGIN
  17. "201,202,203,204,205,206,207,208,209"
  18. END
  19.  
  20. 3 RCDATA DISCARDABLE // Tuesday's
  21. BEGIN
  22. "201,202,203,204,205,206,207,208,209"
  23. END
  24.  
  25. 4 RCDATA DISCARDABLE // Wednesday's
  26. BEGIN
  27. "201,202,203,204,205,206,207,208,209"
  28. END
  29.  
  30. 5 RCDATA DISCARDABLE // Thursday's
  31. BEGIN
  32. "201,202,203,204,205,206,207,208,209"
  33. END
  34.  
  35. 6 RCDATA DISCARDABLE // Friday's
  36. BEGIN
  37. "201,202,203,204,205,206,207,208,209"
  38. END
  39.  
  40. 7 RCDATA DISCARDABLE // Saturdy's
  41. BEGIN
  42. "301,302,303,304,305,306,307,308"
  43. END
  44.  

asi que muchas gracias x todo....
En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #6 en: 22 Junio 2011, 21:59 pm »

perdon que vuelva con este tema, cuando ya habia dicho que lo solucione, pero es que me surguio una duda relacionao a este tema y crear un tema con lo mismo o la continuacion de esto me parecio mal y bue, ....
actualmente uso ese src para leer Resource:

Código
  1. HINSTANCE module = (HINSTANCE)LoadLibrary("RP.dll");
  2. //HINSTANCE module = (HINSTANCE)LoadLibrary("RP.res");
  3. if(module){
  4. OutputDebugString("LoadLibrary yes");
  5. HRSRC rsrc = FindResource(module, MAKEINTRESOURCE(2),RT_RCDATA);
  6. if(rsrc){OutputDebugString("FindResource yes");
  7. HGLOBAL MemoryHandle = LoadResource(module,rsrc);
  8. if(MemoryHandle != NULL){OutputDebugString((LPCTSTR)MemoryHandle);
  9. }else{OutputDebugString("MemoryHandle no");}
  10. }else{OutputDebugString("FindResource no");}
  11. }else{OutputDebugString("LoadLibrary no");}
  12.  

hasta aca todoo funciona bien, pero estoy pensando que como archivo de configuracion o datos para mi programita, no me conviene usar archivo.dll, por que es medio complicado de crear una dll sin programas de programacion o o compiladores. estaba pensando que seria mas facil de crear un archivo .res. yo pensaba que me iba a ser facil leer este archivo.res desde C++, pero el codigo expuesto arriba no me sire para acdeder a los recursos del archivo res, tira error, aqui mi pregunta, se puede acceder a los recursos de un archivo res, asi facilito un poko las cosas???
« Última modificación: 23 Junio 2011, 01:05 am por xkiz ™ » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #7 en: 23 Junio 2011, 02:17 am »

has considerado usar un archivo .ini? son mas faciles, ademas pueden ser consultados en practicamente cualquier plataforma.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consejos sobre archivo de configuracion
« Respuesta #8 en: 23 Junio 2011, 22:10 pm »

si, pero lo que pasa es que no solo strings voy a usar sino un par de cosas mas que no puedo meter en un archivo.ini, como un icono, bmp, y quiero un archivo solido, con un  *.ini tendria que tener el ini y el icono y el bp sueltos y eso es justamente lo que no quiero hacer, por eso de primera acudi a usar una dll como recurso, pero despues me tope con el inconveniente de que una dll no es tan facil de crear como si lo es un archivo.res, que de ultima lo puedo crear con resource Hacker, no se si se entiende la lo que voy....
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
hola consejos sobre avi
Multimedia
led2006 6 2,320 Último mensaje 18 Julio 2006, 18:31 pm
por Songoku
Características y Consejos sobre la PSP
Juegos y Consolas
black_rafar 0 1,336 Último mensaje 28 Enero 2008, 13:05 pm
por black_rafar
Consejos sobre nueva adquisición
Materiales y equipos
chol420 0 2,222 Último mensaje 22 Mayo 2010, 12:04 pm
por chol420
Consejos sobre la compañia ONO
Foro Libre
andres_5 0 1,676 Último mensaje 10 Marzo 2011, 19:58 pm
por andres_5
Consejos de configuracion de Gufw (cortafuegos de ubuntu).
GNU/Linux
dairus20 7 4,461 Último mensaje 23 Abril 2011, 03:55 am
por c0d3rSh3ll
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines