我们使用Scintilla.NET (1.7)组件开发了一个WinForm应用程序,该组件使用SciLexer.dll (未命名)。在运行时,我们同时分发32位和64位SciLexer.dll,并在应用程序启动时加载正确的At (一切正常)。
在我们的新开发环境(Windows7 64位)上,我们的所有解决方案都可以很好地构建和运行,但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系统变量中添加文件夹,在项目中添加文件夹引用,但我一直收到此错误。
任何帮助都是非常感谢的。
发布于 2010-05-26 00:34:42
好了,我弄明白了:我完全是64位系统上的新手,我以为SysWOW64文件夹是用来存放64位库的:)
将32位SciLexer.dll放入SysWOW64非常有用。
发布于 2012-11-18 05:07:08
只是得到了同样的错误。您可以将这些dll的位置添加到PATH环境变量中,而不是弄乱您的操作系统文件夹(不要忘记重新启动您的VS以使更改生效)
https://stackoverflow.com/questions/2906389
复制相似问题