Jump to content

Обсуждение официальных новостей


Recommended Posts

Posted
Народ, мне предложила игра откатится, я отказался. А теперь мне не предлогает игра откатится. И продолжаЕтся этот баг с загрузкой. Что можно придумать в этой ситуации?

Пуск - Все программы - Eagle Dynamics - DCS World - Обновить DCS World

Posted
Вы путаете или не знаете.

 

У меня Windows 7 64.

В папке бин только 32-битный DCS.exe

 

Это Вы путаете или не знаете.

 

dcs.png

 

А вот и зависимости DCS.exe, где мы видим 64-битную версию MSVCR100.dll:

 

depends.png

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted (edited)
P.S.

Однозначно определить, какой сокрыт код (32-битный или 64-битный) в файле образа (exe, dll и т.д.), можно по полю

Target OS. Показывается тоталом, вместе с другими File Properties на закладке File Properties в полагине Listener(fileinfo).

Если значение Propertie = Win32 API, то, думаю, понятно, какой код в файле образа.

Что за бред? Вы, видимо, полагаете, что существует Win64 API? :doh: :D

 

Ну вот, для примера, свойства исполняемого файла проводника 64-битной версии Windows:

 

exp.png

 

Его Вы тоже считаете 32-битным? ;)

Прежде чем путать людей, задайте всё же гуглу вопрос, что такое Win32 API.

Edited by ups

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted (edited)
ups

 

У тебя поле Machine обозначает архитектуру твоего процессора.

 

Ну да, ну да... ;)

Берём 32-битный exe-шник, смотрим это поле.

И что мы видим:

 

image.png

 

У меня процессор поменялся? :D

 

Проделайте простой опыт - возьмите любой Hello World и соберите его в 32- и 64-битной версиях, а потом сравните у них это поле.

 

 

По поводу Win64 API

цитата из Wiki

https://ru.wikipedia.org/wiki/Windows_API

 

Был не прав, каюсь. Действительно доступный набор API функций для 64-битных программ шире.

Но заметьте, что в Visual Studio соответствующий тип проекта всё равно называется Win32.

Так что я подозреваю, что Win64 API название неофициальное.

Или видели его где-то на msdn.microsoft.com?

 

UPD: Ну вот, мой локальный MSDN не слышал про Win64 API, а Win32 API там есть.

Так что, рановато Вы меня в ламеризме упрекаете.

WiKi-тот ещё источник. Давайте официальную доку ;)

 

 

ups, не спорь с C/C++ программером!

Мне такое чувство, как важность - чуждо. Единственно, что я ненавижу - тупорылость и самоуверенность!

Вот то же самое могу написать, слово в слово. ;)

Edited by ups

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted (edited)

ups, если DCS.exe 64-битный, то кого черта он использует 32-битные dll?

 

Он должен бы был тогда использовать dll из Windows\SysWOW64.

 

А так все тянется из Windows\System32.

 

 

Еще.

У меня для

C:\Windows\SysWOW64\explorer.exe

в закладке Image File Header отображается

FILE HEADER :

   Machine:                          014Ch (i386 or later, and compatible)

Как бы, по пути к файлу видно, что exe 64-битный.

С полем Machine - тоже промах.

Edited by serg_p
Posted (edited)
ups, если DCS.exe 64-битный, то кого черта он использует 32-битные dll?

 

Он должен бы был тогда использовать dll из Windows\SysWOW64.

 

А так все тянется из Windows\System32.

 

 

Еще.

У меня для

C:\Windows\SysWOW64\explorer.exe

в закладке Image File Header отображается

FILE HEADER :

   Machine:                          014Ch (i386 or later, and compatible)

Как бы, по пути к файлу видно, что exe 64-битный.

С полем Machine - тоже промах.

 

Всё там правильно, это Вы проверяете неправильно ;)

SysWOW64 - это папка системных библиотек (32-битных) для запуска 32-разрядных приложений на 64-разрядной Windows.

Аббревиатура WOW означает Windows-On-Windows. Это среда для обеспечения совместимости с 32-битными программами.

64-битные файлы лежат, как это ни странно (пути Microsoft неисповедимы) в System32. Только не лезьте туда 32-битным Тоталом, Windows вместо System32 подставит папку для 32-битных программ. Лучше зайдите в System32 проводником, скопируйте какой-нибудь exe-шник оттуда в другое место и там уже изучайте.

Для лучшего понимания ситуации: для 32-битной программы вместо папки System32 подставляется папка SysWOW64 (пути виртуализируются как-то).

Подробно тут:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx

The %windir%\System32 directory is reserved for 64-bit applications. Most DLL file names were not changed when 64-bit versions of the DLLs were created, so 32-bit versions of the DLLs are stored in a different directory. WOW64 hides this difference by using a file system redirector. In most cases, whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to %windir%\SysWOW64. Access to %windir%\lastgood\system32 is redirected to %windir%\lastgood\SysWOW64. Access to %windir%\regedit.exe is redirected to %windir%\SysWOW64\regedit.exe.

 

Ну а то, что 64-битный DCS использует 64-битные DLL (а вовсе не 32 битные) я показал ещё в первом своём посте. Просто тру-программеры проверяют зависимости DLL не Total Commander, а утилитами от SysInternals, тем же Dependency Walker'ом, скриншот которого я и привёл (причём он не зря существует в 2-х версиях - 32 и 64-бита). Разверните скриншот в полный размер, и увидите значки "64" на всех DLL в дереве зависимостей.

 

P.S.: Скрин того поля, про которое Вы писали, для 64-битного приложения не приведёте? Уверяю Вас, там будет стоять Win32 API, наперекор WiKi :)

P.P.S.: А опыт с компиляцией Hello World всё же проделайте, а то так мне и не поверите по поводу свойства Machine.

Edited by ups

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted

Спасибо вам добрые люди.

Я всегда подозревал что програмеры сами не знают что творят.

"Человек - не птица, крыльев не имать. Аще кто приставит себе аки крылья деревянна, противу естества творит, за сие содружество с нечистой силой отрубить выдумщику голову, тело окоянного, пса смердящего, бросить свиньям на съедение, а выдумку после священные литургии огнем сжечь"

Иван IV Грозный.

Posted (edited)

ФрогФут

Признаю, что был неправ!

 

ups

Вы правы, я не прав!

 

Прошу прощения у всех, кого ввел в заблуждение по поводу 32-битности DCS!

 

После цитаты из MSDN про file system redirector и после того, как посмотрел свойства процессов с помощью Process Explorer - все стало понятно. Я ошибался, думая, что в SysWOW64 лежит все исключительно 64-битное.

 

32_64.jpg.0b9802b9507de4e0c4d247c246843f6a.jpg

 

Плин, после этого спора я стал еще сильней уважать ED!

Edited by serg_p
Posted (edited)
... P.P.S.: А опыт с компиляцией Hello World всё же проделайте, а то так мне и не поверите по поводу свойства Machine.

Почему же не поверю?

Я был неправ в том, что смотрел свойства старой, 32-итной программой. Поставил новый, 64-итный Total Commander - все стало, как у Вас. В закладке Image File Header, в свойстве Machine, для 32-битных программ стоит 014Ch (i386 or later, and compatible), а для 64-битных - 8664h (AMD64 (K8 ) ). И еще был неправ, когда сказал, что свойство Machine показывает архитектуру вашего процессора. Тут мне можно было бы сразу усомниться в своей правоте, т.к. свойство находится на закладке Image File Header в группе свойств - FILE HEADER. Но не придал значения.

 

Вывод.

64-битность программы можно определить, в частности, с помощью просмоторщика 64-битного Total Commander-а по значению свойства Machine на вкладке Image File Header. Для 64-итной программы будет стоять - AMD64.

 

И вернусь к вопросу, с которого все началось.

DCS.exe использует библиотеки из Microsoft Visual C++ 2010 Redistributable Package, по этому нужно качать именно этот пакет, но для своей архитектуры (с пометкой в конце (x86) или (x64)).

Edited by serg_p
Posted (edited)
И вернусь к вопросу, с которого все началось.

DCS.exe использует библиотеки из Microsoft Visual C++ 2010 Redistributable Package, по этому нужно качать именно этот пакет, но для своей архитектуры (с пометкой в конце (x86) или (x64)).

Тут всё не так просто. Из-за использования в современных версиях Windows технологии Side-by-side (WinSxS), которая позволяет сосуществовать на компьтере многим версиям одной библиотеки, ставить абы какую версию Microsoft Visual C++ 2010 нет смысла (я не про x86/x64, а именно про номер версии). Нужна именно та версия, что прописана в манифесте приложения, иначе будет что-то типа этого:

 

cf0cf81eb8c9.jpg

 

В общих чертах про это тут:

http://msdn.microsoft.com/ru-ru/library/ms235531(v=vs.100).aspx

 

Библиотеки ATL, MFC, CRT, OpenMP, MSDIA и стандартная библиотека C++ разворачиваются как совместно используемые параллельные сборки в собственном кэше сборок. По умолчанию в Visual C++ построение всех приложений выполняется с манифестом, включаемым в конечный двоичный файл; манифест описывает зависимости этого двоичного файла от библиотек Visual C++.

 

UPD: Вот только в DCS.exe нет внедрённого манифеста, поэтому какая именно версия mscvr100.dll/msvcp100.dll ему нужна - непонятно :music_whistling:

Но можно экспериментально определить - запустить и посмотреть, какую подцепит (правда это только тем, у кого и так запускается).

Edited by ups

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted
Совершенно правильно!

Ладно бы бесплатно экспериментировали, но

они треплят людям нервы за их же деньги.

Офигеть...

А вы представляете каково бета-тестерам?...:music_whistling: , вооо теперь они не одиноки :thumbup:

Posted (edited)
Тут всё не так просто. Из-за использования в современных версиях Windows технологии Side-by-side (WinSxS)

...

UPD: Вот только в DCS.exe нет внедрённого манифеста, поэтому какая именно версия mscvr100.dll/msvcp100.dll ему нужна - непонятно :music_whistling:

Но можно экспериментально определить - запустить и посмотреть, какую подцепит (правда это только тем, у кого и так запускается).

 

Если я все правильно понял, то в MS VC++ 2010 технология WinSxS не используется.

Вот цитата из вот этого документа, из MSDN:

Deployment in Visual C++ 2010

 

Differences between Visual C++ 2008 and Visual C++ 2010

The most significant changes between Visual C++ 2008 and Visual C++ 2010 are:

 

  • Visual C++ libraries no longer depend on manifests and are no longer installed in the WinSxS folder.
  • Dependent applications and libraries no longer require manifest information.
  • Local deployment no longer requires a satellite manifest.
  • Loading of local Visual C++ libraries cannot be redirected to a central location.
  • Emergency servicing applies only to centrally-deployed libraries.

По этому библиотеки

msvcp100.dll

msvcr100.dll

msvcr100_clr0400.dll

просто лежат в Windows\System32, в отличие от библиотек, например, VC++ 2008 (т.е. msvcr90.dll, msvcp90.dll, msvcm90.dll), которые лежат уже в соответствующих папках в Windows\winsxs\

 

По этому, кому-то здесь и помогала простая замена msvcp100.dll, msvcr100.dll в папаке Windows\System32. Сейчас уже не найду тот пост, где один англоязычный пользователь говорил, что у него были проблемы с падениями сима, пока его друг не заменил у него эти библиотеки, взяв их с компа, где все пашет.

Edited by serg_p
Posted (edited)
Если я все правильно понял, то в MS VC++ 2010, технология WinSxS не используется

Тогда всё действительно заметно упрощается.

Просто я в своё время назанимлся сексом в извращённых формах при развёртывании одного проекта, собираемого в Visual Studio 2008 с использованием CRT версии 9. Рад что Microsoft так решил поступить в 10-й версии, но им теперь придётся обеспечить обратную совместимость всех билдов CRT 10 между собой - более свежий должен заменять более старый и при этом корректно работать.

Edited by ups

GA-Z87-HD3 Z87 Socket 1150 /Intel® Core™i7 4770K - 3.5GHz @ 4.5GHz /16 Gb - Kingston DDR3 1600Mhz / MSI GeForce GTX 680 /1200W Chieftec CFT-1200G-DF / Windows 10 x64

__________________________________________________

[sIGPIC][/sIGPIC]

Posted (edited)
Для DCS нужна только (x86), ибо DCS.exe - 32-битное приложение и соответственно использует исключительно 32-битные библиотеки.

 

 

Нужны библиотеки не самой последней версии, а именно те, которые использует текущий DCS.exe. Нужен не Redistributable для Visual Studio 2012, а Microsoft Visual C++ 2010 Redistributable Package. Т.е. нужны стандартные библиотеки и рантайм механизмы от Visual C++ 2010.

 

На скрине выделены красным библиотеки из Microsoft Visual C++ 2010 Redistributable Package, используемые DCS.exe.

 

[ATTACH]84271[/ATTACH]

 

 

 

Привет! Установил Ваши советы(Microsoft Visual C++2010-2012),начала слетать сразу после загрузки миссии. Чет не помогло! Спасибо за понимание ,будем искать! Чиж а ВЫ читаете проблемы и молчите! НЕ ХОРОШО получается,откатывайте еще игру,ZORG тоже мучается со мной а ВЫ тихарьком вроде незаметили!!!! Надо помочь игрокам !

 

 

 

Имя журнала: Application

Источник: Application Error

Дата: 30.06.2013 6:59:37

Код события: 1000

Категория задачи:(100)

Уровень: Ошибка

Ключевые слова:Классический

Пользователь: Н/Д

Компьютер: SergP-PC

Описание:

Имя сбойного приложения: dcs.exe, версия: 1.2.4.12913, отметка времени: 0x519f6bcd

Имя сбойного модуля: wRadio.dll, версия: 1.2.4.12913, отметка времени 0x519f412b

Код исключения: 0xc0000005

Смещение ошибки: 0x000000000000ed6c

Идентификатор сбойного процесса: 0xca0

Время запуска сбойного приложения: 0x01ce75460ddbdb06

Путь сбойного приложения: G:\Games\DCS World\bin\dcs.exe

Путь сбойного модуля: G:\Games\DCS World\bin\wRadio.dll

Код отчета: 7aaf011c-e139-11e2-821c-d43d7e4b1a7c

Xml события:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

<System>

<Provider Name="Application Error" />

<EventID Qualifiers="0">1000</EventID>

<Level>2</Level>

<Task>100</Task>

<Keywords>0x80000000000000</Keywords>

<TimeCreated SystemTime="2013-06-30T03:59:37.000000000Z" />

<EventRecordID>157358</EventRecordID>

<Channel>Application</Channel>

<Computer>SergP-PC</Computer>

<Security />

</System>

<EventData>

<Data>dcs.exe</Data>

<Data>1.2.4.12913</Data>

<Data>519f6bcd</Data>

<Data>wRadio.dll</Data>

<Data>1.2.4.12913</Data>

<Data>519f412b</Data>

<Data>c0000005</Data>

<Data>000000000000ed6c</Data>

<Data>ca0</Data>

<Data>01ce75460ddbdb06</Data>

<Data>G:\Games\DCS World\bin\dcs.exe</Data>

<Data>G:\Games\DCS World\bin\wRadio.dll</Data>

<Data>7aaf011c-e139-11e2-821c-d43d7e4b1a7c</Data>

</EventData>

</Event>

 

Еще wRadio.dll вылез.,с 1-ой минуты слетела? НУЖНА КВАЛИФИЦИРОВАННАЯ ПОМОЩЬ. По эксперементу ясно,миссия без оружия кое-как полетать можно. Миссия с оружием не играет,слетает. Господа разработчики ED, это полуфабрикат! Котите назад к 1.2.3.но с uh-1h.,ИГРАЛА БЕЗ ПРОБЛЕМ!! А-1.2.4.пошли одни баги и проги, а кто помогает с Beta они подскажут че надо доводить до нормы. Так играть нельзя,я корячюсь и вспоминаю Вас плохими словами(не обижайтесь),терплю!!!

Edited by Sergey-51
Posted

пшли бы вы из этой темы

i7 3770K @ 4.8GHz | ASUS Sabertooth Z77 | 4x4Gb Corsair Vengeance 2133 Mhz | GTX 980 SLI | SSD Intel 320 Series | Win 10 x64 | 2560x1440

Posted

Что-то все во всём флуд видят....

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

 

Ваши сообщения конкретно не в тему...... ИМХО

Если что-то не нравится... все претензии в личку.

Posted

Кому как.... кто-то видит в них пользу кто-то нет.... Давайте закругляться в этом направлении, хорошо?.

Posted

Sergey-51

 

Удалите пожалуйста в своем посте из цитаты вот это предложение:

Для DCS нужна только (x86), ибо DCS.exe - 32-битное приложение и соответственно использует исключительно 32-битные библиотеки.
Это неправильное утверждение. Я этот свой пост удалил совсем. Далее даны правильные разъяснения по поводу стандартных библиотек VC++ 2010.
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...