I tried using RichTextBox in C # and found that it was too slow to work with text in thousands of lines. After some googling, I found this because .net uses RichEdit 2.0 by default, and the solution is to use RichEdit 5.0 instead.
C # RichEditBox has extremely poor performance (4 minutes boot) SOLVED
It worked fine, with text displaying seconds, not minutes. However, as a person who does not care about compatibility in a personal project, I wanted to find later versions of RichEdit. I found out that the latest version is 8.0, all of which are sent as riched20.dll, and partially in msftedit.dll.
http://blogs.msdn.com/b/murrays/archive/2006/10/14/richedit-versions.aspx
http://blogs.msdn.com/b/murrays/archive/2012/03/03/richedit-8-0-preview.aspx
However, the msdn documentation stops with 4.1, with (who, I believe, is) the developer of the project, saying that it no longer makes public documentation on the blog higher.
https://msdn.microsoft.com/en-us/library/windows/desktop/bb787873(v=vs.85).aspx
So far, I could explicitly run msftedit.dll RichEdit 2.0 and 5.0, but all other versions eluded me. For example, despite John Crenshaw commenting that RichEdit 6.0 works fine, I could not use it. Any attempt other than the aforementioned combination of msftedit-2.0 and 5.0 results in the "Window class name invalid" error in Application.Run (). (The program is in C #, but I did not mark it as such, because I was afraid that this problem might not be a C # problem.) The code is an almost exact copy of the solution in the first link and looks like this:
class Textbox : RichTextBox
{
[DllImport("kernel32.dll", EntryPoint = "LoadLibraryW", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern IntPtr LoadLibraryW(string s_File);
public static IntPtr LoadLibrary(string s_File)
{
IntPtr h_Module = LoadLibraryW(s_File);
if (h_Module != IntPtr.Zero)
return h_Module;
int s32_Error = Marshal.GetLastWin32Error();
throw new Exception("LoadLibrary Failed with: "+s32_Error);
}
protected override CreateParams CreateParams
{
get
{
CreateParams i_Params = base.CreateParams;
try
{
LoadLibrary("MsftEdit.dll");
i_Params.ClassName = "RichEdit50W";
}
catch
{
}
return i_Params;
}
}
What I did was change the ClassName string to different numbers, for example. RichEdit60W.
Windows 8.1, msftedit.dll RichEdit 7.0 8.0 (, , ), . confidencial?