"Nikolay Ponomarenko" ...
Hello, Vlad!
You wrote on Tue, 2 Sep 2008 17:46:51 +0300:
VK> Не помню. Что значит - валится ?
https://groups.google.com/group/ru-firebird/browse_thread/thread/51e3edcf29e5900a#
Microsoft Visual C++ Runtime Library
Runtime Error!
R6034
An application has made an attempt to load the C runtime library
incorrectly.
Please contact the application's support team for more information.
VK> По идее, рантайм и корректный манифест должны лежать в каталоге с
VK> exe, в остальных каталогах с dll'ами достаточно откорректированного
VK> манифеста.
Так и пытаюсь сделать. Но см. выше.
А само приложение имеет встроенный манифест ? Не уверен, что должно...
В общем, вот как они проверяют наличие манифеста. Может поможет разобраться,
что к чему (из crtlib.c)
static BOOL __cdecl _check_manifest(HMODULE hDllHandle)
{
/* We check that the dll is loaded through a manifest.
*
* We check several conditions and exceptions:
*
* (1) if (pre-fusion OS)
* return TRUE; [no need to check]
*
* (2) if dll is being loaded by instrumented-mscoree.dll.
* return TRUE;
*
* (3) if (dll is loaded from system32)
* return FALSE;
*
* (4) if (!(loaded through a manifest))
* return FALSE;
*
* (5) if (loaded from %SystemRoot%\WinSxS)
* return TRUE; [loaded from the WinSxS cache]
*
* (6) if (manifest is in the same folder as the dll)
* return TRUE;
*
* (7) return FALSE; [loaded with another manifest]
*
* In general, when we encounter an error condition or something
* which blocks us from checking if the dll is loaded through a
* manifest, we do not return an error, but we let the dll to be
* loaded. Notice that this is not a security feature: it's an helper
* which will try (as much as possible) to discourage the practice
* of not using a manifest to load the crt dll.
*/
...
--
Хорсун Влад