C++下函数writeBuff(unsigned char **buf)在C#下应该怎么调用?参数unsigned char **buf应该转化成C#下的什么类型?buf在C++下是指针的指针,我用来从传入数据的。
C#下,我是这样写的public delegate int SetLineBuff(string [] buf);代码如下
FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read);string []arrdataStr = new string[8];
Byte[] onelinebuffer = new Byte[charsofwidth];//charsofwidth可能很大,但很小时我也试了
for (int i = 0; i < _Image.uImageHeight; i++)
{
for (int j = 0; j < _Image.uColors; j++)
{
fs.Read(onelinebuffer, 0, (int)(charsofwidth));
arrdataStr[j] = Encoding.Default.GetString(onelinebuffer);
}
mydll.mSetLineBuff(arrdataStr);//此处调用c++下接口函数,传入数据
}
fs.Close();
问题是下层我接收的数据不对了,不知道是c#调用接口时参数有问题?还是arrdataStr[j] = Encoding.Default.GetString(onelinebuffer);这里转化出问题了?希望高人指教,先谢谢了
c#c++dll
C#下,我是这样写的public delegate int SetLineBuff(string [] buf);代码如下
FileStream fs = new FileStream(path, FileMode.Open,FileAccess.Read);string []arrdataStr = new string[8];
Byte[] onelinebuffer = new Byte[charsofwidth];//charsofwidth可能很大,但很小时我也试了
for (int i = 0; i < _Image.uImageHeight; i++)
{
for (int j = 0; j < _Image.uColors; j++)
{
fs.Read(onelinebuffer, 0, (int)(charsofwidth));
arrdataStr[j] = Encoding.Default.GetString(onelinebuffer);
}
mydll.mSetLineBuff(arrdataStr);//此处调用c++下接口函数,传入数据
}
fs.Close();
问题是下层我接收的数据不对了,不知道是c#调用接口时参数有问题?还是arrdataStr[j] = Encoding.Default.GetString(onelinebuffer);这里转化出问题了?希望高人指教,先谢谢了
c#c++dll
try
ref intptr
读取的数组怎么传呢?
.....