在C#上编写Notepad ++插件。用char * text这样的参数调用SCintilla

时间:2012-07-05 14:23:36

标签: c# plugins notepad++ scintilla

我在c#上为notepad ++编写了一个插件。我的插件创建了一个树来表示某些特定文本文件的结构。 调用带参数的函数(char * text)时遇到一些问题。你能帮忙解决这个问题吗?

例如

SCI_GETLINE(int line, char *text)
{
    string st="";
    Win32.SendMessage(curScintilla, SciMsg.SCI_GETLINE, (int)line, st);
}

这种方式调用raise无效的字符串格式exeption。

1 个答案:

答案 0 :(得分:2)

使用以下参数标记参数:[MarshalAs(UnmanagedType.LPStr)]。问题是你在一些字符串类型中传递一个unicode字符串,它不是字节C样式的空终止字符串。