Ошибка выполнения с Vim Omnicompletion - программирование
Подтвердить что ты не робот

Ошибка выполнения с Vim Omnicompletion

Я пытался использовать Vim omnicompletion с моим кодом Python, но всякий раз, когда я пытаюсь использовать C-x + C-o, он запрашивает следующее сообщение об ошибке:

Ошибка выполнения!

Программа E:\Vim\vim73\gvim.exe

R6034 Приложение попыталось загрузить библиотеку времени выполнения C неправильно. Для получения дополнительной информации обратитесь в службу поддержки.

Может кто-нибудь, пожалуйста, скажите мне, как решить эту проблему! Большое спасибо!

4b9b3361

Ответ 1

У меня та же проблема, которая вызывает gvim неспособность загрузить python pyd dll. Есть несколько советов по решению .pyd dll, которые вызывают вышеупомянутую проблему. Я не уверен, есть ли способ решить Runtime Error для всех dll. Обращайтесь к Не вставляйте правильный манифест для строки времени работы msvc в Windows о том, как решить вашу проблему.

Обновление: Вместо обновления манифеста для файла .pyd. Я попытался обновить манифест для gvim напрямую, обновив оригинальный манифест gvim с некоторыми изменениями из манифеста python.exe.

# dump manifest from gvim.exe
>> mt.exe -inputresource:gvim.exe;#1 -out:gvim.manifest

# dump manifest from python.exe
# *I use python26 for gvim, default gvim come with python27
>> mt.exe -inputresource:c:\python26\python.exe;#1 -out:python.manifest

# manually edit gvim.manifest, just change the line with dependentAssembly with
# line from the python.manifest which will depend on VC90.CRT
# Then, update the edited manifest into gvim.exe
>> mt.exe -manifest gvim.manifest -outputresource:gvim.exe;1

Ниже мой отредактированный gvim.manifest:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <assemblyIdentity processorArchitecture="*" version="7.3.0.0" type="win32" name="Vim"></assemblyIdentity>
  <description>Vi Improved - A Text Editor</description>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>

  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>   

Ответ 2

У меня была такая же проблема (Windows 7), и я мог ее решить, удалив пути из моей переменной PATH, содержащей msvcr90.dll.

После удаления нескольких записей ошибка перестала появляться. К сожалению, я не заметил, какие записи я удалил. Но это было C:\Program Files (x86)\OpenVPN\bin и несколько других, включая Windows Live.

Я получил намек на поиск проблемы на пути отсюда (внизу страницы): https://bitbucket.org/Haroogan/vim-youcompleteme-for-windows/src