Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problemi con i .manifest
Forum - C/C++ - problemi con i .manifest

Avatar
Exor (Normal User)
Rookie


Messaggi: 30
Iscritto: 29/08/2009

Segnala al moderatore
Postato alle 15:06
Mercoledì, 04/11/2009
salve

sono 2 ore che sto sbattendo la testa conro il muro perchè non si avvia un applicazione fatta con visual studio.

il problema è il file manifest.

ho seguito le spiegazioni che da qui http://msdn.microsoft.com/it-it/library/ms235342.aspx

e quindi ho messo questo codice nel file .rc

Codice sorgente - presumibilmente C/C++

  1. #define CREATEPROCESS_MANIFEST_RESOURCE_ID    1
  2. #define RT_MANIFEST                           24
  3.  
  4. CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "C:\\file.exe.manifest"



compilando non mi da errori, solo che quando vado ad avviare l'applicazione mi dice Impossibile avviare il programma perchè MSVCR90.dll non è presente.

ho letto sempre su microsoft che quest'errore lo fa quando non trova il manifest per avviare l'applicazione.

ho controllato il resource.res che compila RS.EXE e lì c'è il file manifest con ID 1 (quindi proprio quello degli exe).

Ho controllato pure l'exe con Resource tuner e vede il manifest sempre con id 1 però l'applicazione no -.-

se metto genera file manifest nelle opzioni il programma funziona ma con il vecchio mmanifest di win95..

Sperando in un vostro aiuto, vi ringrazio :)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 22:48
Mercoledì, 04/11/2009

mmm non ho mai dovuto preoccuparmi del manifest, credo se ne occupi da solo :D

prova ad eliminare tutto, vedi se ti gira :asd:


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Exor (Normal User)
Rookie


Messaggi: 30
Iscritto: 29/08/2009

Segnala al moderatore
Postato alle 22:50
Mercoledì, 04/11/2009
Testo quotato

Postato originariamente da HeDo:


mmm non ho mai dovuto preoccuparmi del manifest, credo se ne occupi da solo :D

prova ad eliminare tutto, vedi se ti gira :asd:



eliminare cosa ?

cmq a me non se ne occupa da solo :asd:

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 11:22
Giovedì, 05/11/2009

per "eliminare tutto" intendo "eliminare la parte di codice che si occupa del manifest"

però guarda, è un problema che non ho mai avuto e ci lavoro da anni. Posso dire con certezza che il 2008 se ne occupa da solo, il 2005 penso anche lui però se trovi in giro qualche post che dice il contrario (sul 2005) potrebbe essere.

al limite posta l'intero prog e ci do un'occhiata :)


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Exor (Normal User)
Rookie


Messaggi: 30
Iscritto: 29/08/2009

Segnala al moderatore
Postato alle 15:46
Giovedì, 05/11/2009
Testo quotato

Postato originariamente da HeDo:


per "eliminare tutto" intendo "eliminare la parte di codice che si occupa del manifest"

però guarda, è un problema che non ho mai avuto e ci lavoro da anni. Posso dire con certezza che il 2008 se ne occupa da solo, il 2005 penso anche lui però se trovi in giro qualche post che dice il contrario (sul 2005) potrebbe essere.

al limite posta l'intero prog e ci do un'occhiata :)



guarda hai ragione, il manifest se imposto di generarlo lo genera, ma non quello di xp .. cioè pulsanti ecc sono del manifest di win98.

cmq questo è il file delle risorse:

Codice sorgente - presumibilmente C++

  1. // Microsoft Visual C++ generated resource script.
  2. //
  3. #include "resource.h"
  4.  
  5. 1 RT_MANIFEST "C:\\WxDev files\\lista.exe.manifest"
  6.  
  7. #define APSTUDIO_READONLY_SYMBOLS
  8. /////////////////////////////////////////////////////////////////////////////
  9. //
  10. // Generated from the TEXTINCLUDE 2 resource.
  11. //
  12. #include "afxres.h"
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. #undef APSTUDIO_READONLY_SYMBOLS
  16.  
  17. /////////////////////////////////////////////////////////////////////////////
  18. // Italiano (Italia) resources
  19.  
  20. #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ITA)
  21. #ifdef _WIN32
  22. LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
  23. #pragma code_page(1252)
  24. #endif //_WIN32
  25.  
  26. #ifdef APSTUDIO_INVOKED
  27. /////////////////////////////////////////////////////////////////////////////
  28. //
  29. // TEXTINCLUDE
  30. //
  31.  
  32. 1 TEXTINCLUDE
  33. BEGIN
  34.     "resource.h\0"
  35. END
  36.  
  37. 2 TEXTINCLUDE
  38. BEGIN
  39.     "#include ""afxres.h""\r\n"
  40.     "\0"
  41. END
  42.  
  43. 3 TEXTINCLUDE
  44. BEGIN
  45.     "\r\n"
  46.     "\0"
  47. END
  48.  
  49. #endif    // APSTUDIO_INVOKED
  50.  
  51.  
  52. /////////////////////////////////////////////////////////////////////////////
  53. //
  54. // Icon
  55. //
  56.  
  57. // Icon with lowest ID value placed first to ensure application icon
  58. // remains consistent on all systems.
  59. MAIN_ICON               ICON                    "icona.ico"
  60.  
  61. #endif    // Italiano (Italia) resources
  62. /////////////////////////////////////////////////////////////////////////////
  63.  
  64.  
  65.  
  66. #ifndef APSTUDIO_INVOKED
  67. /////////////////////////////////////////////////////////////////////////////
  68. //
  69. // Generated from the TEXTINCLUDE 3 resource.
  70. //
  71.  
  72.  
  73. /////////////////////////////////////////////////////////////////////////////
  74. #endif    // not APSTUDIO_INVOKED



file resource.h

Codice sorgente - presumibilmente C++

  1. //{{NO_DEPENDENCIES}}
  2. // Microsoft Visual C++ generated include file.
  3. // Used by lista.rc
  4. //
  5. #define MAIN_ICON                       101
  6.  
  7. // Next default values for new objects
  8. //
  9. #ifdef APSTUDIO_INVOKED
  10. #ifndef APSTUDIO_READONLY_SYMBOLS
  11. #define _APS_NEXT_RESOURCE_VALUE        107
  12. #define _APS_NEXT_COMMAND_VALUE         40018
  13. #define _APS_NEXT_CONTROL_VALUE         1001
  14. #define _APS_NEXT_SYMED_VALUE           101
  15. #endif
  16. #endif



lista.cpp

Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. #include "resource.h"
  3. #include <commctrl.h>
  4.  
  5. //Definizione del gestore eventi per la finestra Main
  6. LRESULT CALLBACK ClasseMain_EvtHandler(HWND, UINT, WPARAM,LPARAM);
  7. void InitClassMainWindow (WNDCLASSEX&,HINSTANCE);
  8.  
  9. LPCTSTR titoloMainWindow = L"looool";
  10. LPCTSTR MainWindow_class = L"MainWindow";
  11. HWND MainWindow_hwnd, PulsanteCerca_hwnd;
  12. MSG messages;
  13. WNDCLASSEX ClasseMain;
  14. HINSTANCE AppInst;
  15.  
  16. INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  17. {
  18.         //InitCommonControls();
  19.         AppInst = hInstance;
  20.         InitClassMainWindow(ClasseMain,hInstance);
  21.  
  22.         RegisterClassEx(&ClasseMain); //Registrazione della classe.
  23.  
  24.         MainWindow_hwnd = CreateWindowEx(
  25.                 0,
  26.                 MainWindow_class,
  27.                 titoloMainWindow,
  28.                 WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX,
  29.                 CW_USEDEFAULT,
  30.                 CW_USEDEFAULT,
  31.                 532,
  32.                 433,
  33.                 (HWND)GetDesktopWindow(),
  34.                 NULL,
  35.                 hInstance,
  36.                 NULL
  37.                 );
  38.  
  39.         PulsanteCerca_hwnd = CreateWindow(
  40.                 L"BUTTON",   // Predefined class; Unicode assumed.
  41.                 L"Cerca",       // Button text.
  42.                 WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,  // Styles.
  43.                 402,         // x position.
  44.                 27,         // y position.
  45.                 103,        // Button width.
  46.                 35,        // Button height.
  47.                 MainWindow_hwnd,       // Parent window.
  48.                 NULL,       // No menu.
  49.                 hInstance,
  50.                 NULL
  51.         );      // Pointer not needed.
  52.  
  53.         CreateWindow(
  54.                 L"EDIT",
  55.         NULL,
  56.         WS_CHILD | WS_VISIBLE | ES_LEFT,
  57.         10, 37, 389, 21,
  58.         MainWindow_hwnd,  
  59.         (HMENU) 25,
  60.         hInstance,
  61.         NULL);    
  62.  
  63.  
  64.         // Find out if the window was created
  65.         if( !MainWindow_hwnd ) { // If the window was not created,
  66.                 MessageBox(NULL,L"Errore grave. Contattare lo sviluppatore.",L"Errore!",MB_OK); // stop the application
  67.                 return 0;
  68.         }
  69.  
  70.         // Display the window to the user
  71.         ShowWindow(MainWindow_hwnd, SW_SHOWNORMAL);
  72.         UpdateWindow(MainWindow_hwnd);
  73.  
  74.         while( GetMessage(&messages, NULL, 0, 0) )
  75.         {
  76.         TranslateMessage(&messages);
  77.         DispatchMessage(&messages);
  78.         }
  79.         return 0;
  80. }
  81.  
  82.  
  83. void InitClassMainWindow (WNDCLASSEX& ClassName,HINSTANCE hInstance)
  84. {
  85.         ClasseMain.cbSize = sizeof(WNDCLASSEX); //Dimensione Variabile.
  86.         ClasseMain.cbClsExtra = 0; //Memoria allocata extra.
  87.         ClasseMain.hInstance = hInstance; //Istanza dell'app.
  88.         ClasseMain.cbWndExtra = 0; //Memoria allocata per la finestra extra.
  89.         ClasseMain.style = CS_HREDRAW | CS_VREDRAW; //stile della finestra;
  90.         ClasseMain.lpfnWndProc = ClasseMain_EvtHandler; //Funzione handler.
  91.         ClasseMain.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(MAIN_ICON)); //Icona per l'exe.
  92.         ClasseMain.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(MAIN_ICON)); //Icona per la finestra
  93.         ClasseMain.hbrBackground = (HBRUSH)COLOR_BACKGROUND; //Sfondo della finestra.
  94.         ClasseMain.lpszMenuName  = NULL; //Menu della finestra.
  95.         ClasseMain.lpszClassName = MainWindow_class;
  96. }
  97.  
  98. LRESULT CALLBACK ClasseMain_EvtHandler(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
  99. {
  100.         POINT MousePos;
  101.         GetCursorPos(&MousePos);
  102.  
  103.     switch(Msg)
  104.     {
  105.     case WM_DESTROY:
  106.         PostQuitMessage(WM_QUIT);
  107.         break;
  108.         case WM_SIZE:
  109.         break;
  110.         case WM_COMMAND:
  111.                 switch(HIWORD(wParam))
  112.                 {
  113.                         case BN_CLICKED:
  114.                                 if((HWND)lParam == PulsanteCerca_hwnd)
  115.                                         MessageBox(NULL,L"asd",L"loool",MB_OK);
  116.                         break;
  117.                 }
  118.                 break;
  119.         case WM_LBUTTONDOWN:
  120.                 break;
  121.         case WM_CREATE:
  122.                 InitCommonControls();
  123.                 break;
  124.     default:
  125.         return DefWindowProc(hWnd, Msg, wParam, lParam);
  126.     }
  127.     return 0;
  128. }


PM Quote
Avatar
edo42 (Member)
Pro


Messaggi: 102
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 16:52
Giovedì, 05/11/2009
Puoi provare a vedere se non si è sbagliato visual studio a scrivere qualche file. Prova a creare un progetto nuovo e a copiarci dentro il codice, a me una volta è funzionato.


Se passi a mac da win non sai cosa ti trovi, ma stai sicuro che non tornerai mai indietro
PM Quote
Avatar
Exor (Normal User)
Rookie


Messaggi: 30
Iscritto: 29/08/2009

Segnala al moderatore
Postato alle 17:57
Giovedì, 05/11/2009
Testo quotato

Postato originariamente da edo42:

Puoi provare a vedere se non si è sbagliato visual studio a scrivere qualche file. Prova a creare un progetto nuovo e a copiarci dentro il codice, a me una volta è funzionato.



niente -..-

ho fatto un nuovo progetto win32 vuoto, ho messo i file ho compilato, ma all'avvio sempre uguale .. ora richiede MSVCR90D.dll .. sempre perchè non trova il manifest dell'exe -.-

solo che aprendo l'exe sia con visual studio che con restuner il manifest c'è -.-

PM Quote
Avatar
Exor (Normal User)
Rookie


Messaggi: 30
Iscritto: 29/08/2009

Segnala al moderatore
Postato alle 1:19
Lunedì, 21/12/2009
ragazzi ci sono di nuovo ...

stavolta però posto un exe di prova che ho fatto...

spero di risolvere :d

http://www.mediafire.com/?1zzkgne2tgn

questo è l'exe... notate che la finestra il pulsante ha lo stile di xp, però il carattere rimane lucida console -.-

saluti :D

Ultima modifica effettuata da Exor il 21/12/2009 alle 3:54
PM Quote