当前位置:编程学习 > wap >>

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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,