linking MFC runtime dlls



  • Hi,
    Ich möchte das mein programm auch ohne externe mfc dlls läuft

    bei vc+ 2008 hab ich bei options auf static linked librarys eingestellt
    und dann compiliert

    EDIT: Warning 1 warning LNK4199: /DELAYLOAD:OleAcc.dll ignored; no imports found from OleAcc.dll loop
    

    bei dynamic linked dlls kommt zwar kein error, aber geht auch nicht auf anderen rechnern ohne vc++

    bei vc+2005 hatte ich das so gelöst, dass ich die exe mit recource hacker geöffnet hab und folgendes ins manifest reingeschrieben und die nötigen dlls mitgeliefert hab

    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" 
      manifestVersion="1.0">
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" 
          version="8.0.50727.42" 
          processorArchitecture="x86" ></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.MFC" 
          version="8.0.50727.42" 
          processorArchitecture="x86" ></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" 
          name="Microsoft.Windows.Common-Controls" version="6.0.0.0" 
          processorArchitecture="x86" 
          publicKeyToken="6595b64144ccf1df" 
          language="*"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
    </assembly>
    

    geht leider nicht bei vc++ 2008 obwohl ich die version der dlls angepasst hab

    hatt einer eventuell eine idee wie ich mein problem loswerden kann?

    Ps: hab schon im forum gesucht und sogar was gefunden, fand ich aber nicht so hilfreich
    auch bei google hab ich nicht viel gefunden sry

    Naja ich freu mich schon auf antworten

    MfG CantStop



  • Wenn Du eine EXE erstellst, welche auf den CRT-DLLs basiert, musst Du natürlich diese auch mitliefern!

    Ganz abgesehen davon, darf man dies mit der VC2008 Version gar nicht, da sich diese noch im *Beta* Stadium befindet!!!



  • heißt das jetzt ich darf überhaupt keine dlls mitliefern oder kann ich diese wenigstens statisch in die exe einbinden?

    Ps: bei vc2005 kommt auchn error



  • Dass heisst, dass Du überhaupt keine Programme, welche mit VC2008-Beta2 erstellt wurden, weitergeben darfst!



  • ok danke werde wieder auf vc2005 umsteigen
    da bekomm ich allerding die selbe fehlermeldung:

    warning LNK4199: /DELAYLOAD:OleAcc.dll wird ignoriert; keine Importe von OleAcc.dll gefunden.
    


  • Wo siehst Du hier eine Fehlermeldung?



  • sry warning meinte ich
    exe geht trotzdem nicht auf anderen pcs ohne vc



  • Du musst auf dem Zeilrechner das Folgende installieren.
    http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647

    Oder linke *nicht* gegen die DLL-Version der CRT/MFC.


Anmelden zum Antworten