Vra

Ek is die integrasie van NET ondersteuning in ons C ++ program.
Dit is 'n ou-skool MFC aansoek, met 1 ekstra lêer saamgestel met die "/ CLR" opsie wat 'n CWinFormsControl verwys.

Ek is nie toegelaat om die linker vlag "/ NODEFAULTLIB" verwyder.
(Ons het ons eie gebou bestuur stelsel, nie Visual Studio se.)
Dit beteken ek moet al die nodige biblioteke spesifiseer:. VC runtime en MFC

Ander samesteller opsies sluit in "/ MD"

Langs dat Ek nie kan gebruik maak van die linker vlag "/ FORCE: MEERVOUDIGEKEUSE" en voeg net alles :
Ek is op soek na 'n nie-oorvleuelende stel biblioteke.

Was dit nuttig?

Oplossing 3

Hoe ek opgelos dit:

  1. skakel met "/ FORCE: MEERVOUDIGEKEUSE / verbose" (wat ok skakels) en stel die uitset opsy
  2. .
  3. skakel met "/ NODEFAULTIB / verbose" en op te spoor al unresolveds in die uitset van die vorige stap en voeg die biblioteke 1 deur 1.
  4. Dit het gelei tot dubbelspel: "AAA.lib: XXX reeds in BBB.lib gedefinieer"
  5. Toe het ek dit uiteindelik: Hersaamgestel bestuur en onbeheerde eenhede met / MD en verwys na (onder andere): mscoree.lib msvcmrt.lib mfcm80d.lib

Meng / MT (onbeheerde) en / MD (bestuur) blyk te wees die slegte idee wees: verskillende (oorvleuelende) biblioteke is nodig.

@ajryan: Dependcy Walker sê vir my net wat dll's word gebruik, nie wat biblioteke gekoppel is aan wanneer 'n skakel. (Bv msvcmrt.lib?) Ek dink.

Dankie vir die antwoorde!

Jan

Ander wenke

As 'n absolute minimum:

mscoree.lib MSVCRT.lib mfc90.lib (aanpas weergawe toepaslik)

En Itereer van daar af.

Gebruik die AppWizard om 'n kaal-bene MFC app in jou styl (SDI / MDI / dialoog) te skep en dan sit op jou hang .

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top