Как загрузить SciLexer.dll в Visual Studio 2008 Designer в 64-разрядной версии Windows 7?
Мы разрабатываем приложение WinForm с использованием компонента Scintilla.NET (1.7), в котором используется SciLexer.dll (без изменений). Во время выполнения мы распространяем 32-битный и 64-битный SciLexer.dll и загружаем правильный файл при запуске приложения (все работает нормально).
В наших новых средах разработки (Windows 7 64-bit) все наши решения создаются и работают нормально, но визуальный дизайнер WinForm не загружает наши формы / элементы управления, которые используют Scintilla.NET, потому что он не может загрузить правильный SciLexer.dll:
Window class name is not valid.
at System.Windows.Forms.NativeWindow.WindowClass.RegisterClass()
at System.Windows.Forms.NativeWindow.WindowClass.Create(String className, Int32 classStyle)
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at Scintilla.ScintillaControl.SendMessageDirect(UInt32 msg, IntPtr wParam, IntPtr lParam)
at Scintilla.ScintillaControl.SendMessageDirect(UInt32 msg)
at Scintilla.ScintillaControl.get_CodePage()
at Scintilla.ScintillaControl..ctor(String sciLexerDllName)
at Scintilla.ScintillaControl..ctor()
Где Visual Studio 2008 ищет неуправляемые библиотеки? Я попытался поместить 64-битный файл SciLexer.dll в SysWOW64, в папку, на которую ссылается ScintillaNET.dll, добавив папку в системную переменную PATH, добавив ссылку на папку в проект, но я продолжаю получать эту ошибку.
Любая помощь приветствуется.
2 ответа
Хорошо, я понял это: я - полный нуб на 64-разрядных системах, и я думал, что папка SysWOW64 была для 64-разрядных библиотек:)
Помещение 32-битного SciLexer.dll в SysWOW64 работает как шарм.
Просто получил ту же ошибку. Вместо того, чтобы связываться с папками вашей ОС, вы можете добавить расположение этих библиотек в переменную среды PATH (не забудьте перезапустить VS, чтобы изменения вступили в силу)