dll 不能调用?为什么啊
[DllImport("Coredll.dll", EntryPoint = "GetDiskFreeSpaceEx")]--------------------编程问答-------------------- 是不能调用,还是调用后出现了什么问题?
private static extern int GetDiskFreeSpaceEx(string dirName, out ulong
freeBytesAvailableToCaller,
out ulong totalNumberOfBytes,
out ulong totalNumberOfFreeBytes);
调用 ulong a1 = 0;
ulong a2 = 0;
ulong a3 = 0; ;
GetDiskFreeSpaceEx(DatabasePath, out a1, out a2, out a3);
这个函数调用应该是没问题的,因为从Windows CE 2.0以后就支持该函数了。
如果调用失败,可以调用 GetLastError看看是什么错误。 --------------------编程问答-------------------- 调用应该没啥问题,是不是调用报了其他的错误? --------------------编程问答-------------------- 应该不是错在这个函数 --------------------编程问答-------------------- GetDiskFreeSpaceEx("\\",...);
GetDiskFreeSpaceEx("\\Storage Card",...); --------------------编程问答-------------------- 1, 不能调用有啥提示
2, 确认下路径是否对路 --------------------编程问答-------------------- 你程序里面的这个字符串值是什么 DatabasePath?是不是磁盘路径传的不对
--------------------编程问答-------------------- 报的什么错误啊? --------------------编程问答-------------------- 添加引用了么? --------------------编程问答--------------------
class Program
{
[DllImport("Coredll.dll", EntryPoint = "GetDiskFreeSpaceEx")]
private static extern int GetDiskFreeSpaceEx(string dirName,
out ulong freeBytesAvailableToCaller,
out ulong totalNumberOfBytes,
out ulong totalNumberOfFreeBytes);
static void Main(string[] args)
{
ulong a1 = 0;
ulong a2 = 0;
ulong a3 = 0; ;
GetDiskFreeSpaceEx("\\", out a1, out a2, out a3);
MessageBox.Show("a1="+a1.ToString());
MessageBox.Show("a2=" + a1.ToString());
MessageBox.Show("a3=" + a1.ToString());
}
}
测试后有问题!楼主的错误是什么样的? --------------------编程问答--------------------
public static DiskFreeSpace GetDiskFreeSpace(string directoryName)
{
DiskFreeSpace result = new DiskFreeSpace();
if(!GetDiskFreeSpaceEx(directoryName, ref result.FreeBytesAvailable,
ref result.TotalBytes, ref result.TotalFreeBytes))
{
throw new Win32Exception(Marshal.GetLastWin32Error(), "Error retrieving free disk space");
}
return result;
}
public struct DiskFreeSpace
{
public long FreeBytesAvailable;
public long TotalBytes;
public long TotalFreeBytes;
}
[DllImport("coredll")]
private static extern bool GetDiskFreeSpaceEx(string directoryName,
ref long freeBytesAvailable,
ref long totalBytes,
ref long totalFreeBytes);
你可以在试试这种! --------------------编程问答-------------------- 路径的问题吧
补充:移动开发 , Windows Phone