C# 记事本++;插件-读取所有文档';s文本

C# 记事本++;插件-读取所有文档';s文本,c#,c++,plugins,notepad++,C#,C++,Plugins,Notepad++,我正在使用c#模板编写记事本++插件 有人知道如何读取所有当前文档文本,因为我需要将所有文本读取为字符串吗 有人知道读取当前文档文本的函数吗?参考斯金特拉API文档应该可以为您指明正确的方向: 您链接的演示项目有一个发送消息的示例。这段代码适用于我,使用您在Notepad++web上找到的演示C#项目: int length = (int) Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETLENGTH, 0, 0); IntPtr

我正在使用c#模板编写记事本++插件

有人知道如何读取所有当前文档文本,因为我需要将所有文本读取为字符串吗


有人知道读取当前文档文本的函数吗?

参考斯金特拉API文档应该可以为您指明正确的方向:


您链接的演示项目有一个发送消息的示例。

这段代码适用于我,使用您在Notepad++web上找到的演示C#项目:

int length = (int) Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETLENGTH, 0, 0);
IntPtr ptrToText = Marshal.AllocHGlobal(length+1);
Win32.SendMessage(GetCurrentScintilla(), SciMsg.SCI_GETTEXT, length, ptrToText);
string textAnsi = Marshal.PtrToStringAnsi(ptrToText);
Console.WriteLine(textAnsi);
Marshal.FreeHGlobal(ptrToText);
  • 获取文本的长度
  • 为文本分配一些内存
  • 使用长度和上一个指针,从记事本中获取文本
  • 使用Console.WriteLine,您可以打印消息或执行所需的操作
  • 释放先前分配的内存
  • 更新:


    < >需要在行的结尾分配额外的字节^ ^ /p>我认为记事本++是用C++编写的,如果我错了请纠正我。你打算从托管代码中调用它的非托管API,并希望我们帮助你编写代码吗?我使用的是你在这里找到的c#模板:脱离主题:自述文件中最顶层的一行写着“忘记这个包的所有以前版本-这是一个全新的方法!”这太可怕了!你能理解我是如何阅读当前文档文本的吗?对不起,我不是编组方面的专家。据我所见,您需要使用导出调用调用Notepad++原生API来调用一些API。在这里添加C++标签可能是个好主意。