api---getfullpathname 如何获得指定的文件路径。 返回值:装载到lpBuffer中的字符数量(排除空中止字符)。如缓冲区的长度不足以容下完整的路径,则返回值就是要求的缓冲区大小。零表示失败。lpBuffer为返回的路径名 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上已经解释了。我给了一个.net framework中的解决方案:System.IO.Path.GetFullPath("QQ.exe");和API一样的。 lpBuffer为返回的路径名如何获得lpBuffer的参数,让它输出来呢 ?不懂 ! [DllImport("kernel32.dll", CharSet = CharSet.Auto)]public static extern int GetFullPathName ( [MarshalAs(UnmanagedType.LPTStr)] string lpFileName, int nBufferLength, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpBuffer, [MarshalAs(UnmanagedType.LPTStr)] string lpFilePart );就是说,不管是用于输入还是输出的字符串缓冲区,都封送成UnmanagedType.LPTStr;但在托管程序中,string 类型是常量型的,要是更改了它的缓冲区会破坏托管堆。StringBuilder 类型就是被设计为用作缓冲区的,用它来代替字符串。使用时要这样:StringBuilder sb = new StringBuilder(80); // 缓冲区大小int ret = GetFullPathName(...); // 我省略不写了。string s = sb.ToString();还有一点就是 CharSet = CharSet.Auto这个是为了在NT和9X上都正确处理UNICODE和ANSI字符串而设置的。如果你的函数名和被调名一样,可以不设置EntryPoint属性 关于查找 Linq 集合问题 mapinfo引用问题 GPS软件 急..........高手务必进~! c#读取oracle中的blob字段,如何实现!希望有原码? petshop.msi怎么才能变成看到那种源代码的文件格式啊??? java中的">>>"在c#中如何实现 各位,在datagrid中如何进行多行选择,谢谢 在多文档窗口中有没有办法实现想VS那样的效果 怎样在右击的同时也选定? 萌新求大神解答 谁有DotFuscator 1.2专业版的注册码?共享一下 在一個CS文件里定義了一個class,在另一個aspx文件不能調用
我给了一个.net framework中的解决方案:
System.IO.Path.GetFullPath("QQ.exe");
和API一样的。
不懂 !
public static extern int GetFullPathName (
[MarshalAs(UnmanagedType.LPTStr)]
string lpFileName,
int nBufferLength,
[MarshalAs(UnmanagedType.LPTStr)]
StringBuilder lpBuffer,
[MarshalAs(UnmanagedType.LPTStr)]
string lpFilePart
);
就是说,不管是用于输入还是输出的字符串缓冲区,都封送成UnmanagedType.LPTStr;
但在托管程序中,string 类型是常量型的,要是更改了它的缓冲区会破坏托管堆。
StringBuilder 类型就是被设计为用作缓冲区的,用它来代替字符串。
使用时要这样:
StringBuilder sb = new StringBuilder(80); // 缓冲区大小
int ret = GetFullPathName(...); // 我省略不写了。
string s = sb.ToString();
还有一点就是 CharSet = CharSet.Auto
这个是为了在NT和9X上都正确处理UNICODE和ANSI字符串而设置的。
如果你的函数名和被调名一样,可以不设置EntryPoint属性