如何在C#中从Win API调用StrFormatByteSize64函数?我正在尝试以下代码,但未成功:
[DllImport("shlwapi.dll")]
static extern void StrFormatByteSize64(ulong qdw, char[] pszBuf, uint cchBuf);
char[] temp = new char[128];
ulong size = 2000;
StrFormatByteSize64(size, temp, 128);
Console.WriteLine(temp);
该功能的文档可在以下位置找到:http://msdn.microsoft.com/en-us/library/bb759971%28VS.85%29.aspx
谢谢!
最佳答案
尽管可能不是最干净的方法,但这种方法有效:
using System;
using System.Runtime.InteropServices;
using System.Text;
public class Test
{
[DllImport("shlwapi.dll")]
static extern void StrFormatByteSize64(ulong qdw, StringBuilder builder,
uint cchBuf);
static void Main()
{
ulong size = 2000;
StringBuilder builder = new StringBuilder(128);
StrFormatByteSize64(size, builder, builder.Capacity);
Console.WriteLine(builder);
}
}
恐怕我对互操作不了解很多-例如,可能不需要指定
StringBuilder
的初始容量。我不确定:(无论如何,它应该为您提供进一步研究的起点。关于c# - 从C#中调用StrFormatByteSize64函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3400699/