Конференция "WinAPI" » LoadLibrary [D7, WinXP]
 
  • Anatoly Podgoretsky © (05.06.08 14:10) [20]
    > dll  (05.06.2008 13:18:17)  [17]

    По этой ошибке есть только это

    14001 ERROR_SXS_CANT_GEN_ACTCTX

    The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.
  • dll (05.06.08 14:51) [21]
    dependency walker показал, что есть зависимость от
    msvcp80.dll
    msvcr80.dll

    запустил тестовый exe с этими dll, лежащими в папке с exe - ничего не изменилось.
  • dll (05.06.08 15:39) [22]
    интересно вот что.
    на моей машине эти msv*80.dll лежат в папках типа этой:

    C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb

    в путях ее нет, значит они как-то зарегистрированы?
    чем и где?
  • Игорь Шевченко © (05.06.08 15:42) [23]

    > в путях ее нет, значит они как-то зарегистрированы?
    > чем и где?


    14001 ERROR_SXS_CANT_GEN_ACTCTX

    Вот это сообщение как раз на эту тему.

    манифест надо делать и указывать в нем ссылку на эти dll
  • dll (05.06.08 15:45) [24]
    про манифест мне разработчик dll уже сказал.
    ссылки на либы нашел в своем реестре в windows\current version\SideBySide
    то есть видимо надо просто regsrv для них сделать?
  • dll (05.06.08 16:08) [25]
    regsrv для них не прокатывает.
    как их можно прикрутить-то к системе?
  • Anatoly Podgoretsky © (05.06.08 16:16) [26]
    > Игорь Шевченко  (05.06.2008 15:42:23)  [23]

    Судя по WinSxS так и есть, это папка предшественница защиты Висты, на некоторых машинах превышает System32
  • dll (05.06.08 16:33) [27]
    парни, как либы-то зарегистрировать в этом sxs?
  • Anatoly Podgoretsky © (05.06.08 16:44) [28]
    > dll  (05.06.2008 16:08:25)  [25]

    Сложный вопрос, то что попало в эту папку - это особое, туда просто так не попадают.
  • Игорь Шевченко © (05.06.08 16:56) [29]

    > Судя по WinSxS так и есть, это папка предшественница защиты
    > Висты, на некоторых машинах превышает System32


    Собственно, не совсем предшественница, скорее Vista преемница. А ноги из .Net растут - борьба с DLL Hell
  • dll (05.06.08 16:59) [30]
    ок. зайдем с другого бока.
    назначение winSxS  - разрешение конфликта одноименных dll разных версий.

    ситуация: три не моих длл импортируют несколько сишных рантайм библиотек. на "нормальном" компе все они лежат в WinSxS.

    вопрос: почему не загружаются те три длл, если других версий msv*80.dll нет, а существующие лежат в путях?

    еще вопрос:
    в WinSxS длл попадают судя по описанию в результате кривых инсталяторов, если те пытаются заменить одноименные длл.

    у меня три эти длл не инсталировались, а просто были распакованы из присланного архива. И все разботает.

    На некоторых "неправильных" машинах не работает, даже если библиотеки *80.dll лежат вместе с теми тремя.

    куда копать?
  • Игорь Шевченко © (05.06.08 17:11) [31]

    > три не моих длл импортируют несколько сишных рантайм библиотек


    У них манифест есть в ресурсах ?


    > в WinSxS длл попадают судя по описанию в результате кривых
    > инсталяторов, если те пытаются заменить одноименные длл.
    >


    Нет
  • dll (05.06.08 17:16) [32]
    На чистой, только что установленной машине нашел по две версии msvcp80.dll msvcr80.dll

    лежат в папке windows\WinSxS\x86_Microsoft_бла_бла_бла_1433_бла бла

    1433 нужный мне билд (при переименовании длл другого билда рабюотоспособность не теряется)
    манифестов рядом с длл нет
    Видимо они в windows\WinSxS\Manifests

    как же мне на системах с отсутствующим номером билдов вклеить эти длл?
  • Игорь Шевченко © (05.06.08 17:36) [33]

    > У них манифест есть в ресурсах ?
  • dll (05.06.08 17:39) [34]
    нету. лежат отдельно в виде файлов в папке манифестс
  • Игорь Шевченко © (05.06.08 17:44) [35]

    > три не моих длл импортируют несколько сишных рантайм библиотек.
    >  на "нормальном" компе все они лежат в WinSxS.


    У них манифест есть в ресурсах ? У трех не твоих dll
  • dll (05.06.08 17:48) [36]
    наверное нету. как посмотреть?
    ресурса версии точно нету.
  • dll (05.06.08 17:56) [37]
    непонятно вот что:
    "три" длл импортируют msvcp80 и msvcr80
    на чистой машине убираю 1433 билд всех библиотек *80.dll
    остается билд 762.
    тест не работает.
    откуда три длл знают, что им нужен 1433 билд?
  • Игорь Шевченко © (05.06.08 20:11) [38]

    > откуда три длл знают, что им нужен 1433 билд?


    из манифеста


    > как посмотреть?


    tdump имя.dll
  • dll (05.06.08 22:03) [39]
    Похоже нет там манифеста

    http://rapidshare.com/files/120324370/ttt.txt
 
Конференция "WinAPI" » LoadLibrary [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]