好的,我的程序有问题。我之前提出了一个问题,但没有人真正理解我的问题,所以这次我尝试了一种新的方法。
如果你好奇这是我的问题:
我的程序以 的形式接受参数
char* argv[]
,并且我无法创建指向正在argv[1]
使用的任何内容的指针LPWSTR
,因为它只指向const wchar_t*
对象。
这是我试图解决我的问题的新事物(我已经尝试了多种方法,但我需要知道如何去做我在想的事情,或者如果可能的话)
基本上,我的想法是#define
某种函数,它接受任何内容并用该值argv[1]
定义 a 。const wchar_t*
像这样的东西:
#define path ((const wchar_t*)argv[1])
我不确定这是做我想做的事情的正确方法(或者即使这是可能的)......
如果您有更好的方法来解决我的问题,请(请)告诉我如何帮助我,我一直在考虑这个问题很长时间!
我的程序说明:
我正在制作一个接收参数的程序。参数是驱动器的名称,例如“F:”。
CreateFile
然后它使用带有驱动器号的函数。如果你去这里,看到函数的第一个参数,我想你会明白我的意思......问题是我要制作一个 LPWSTR,我需要一个 const wchat_t* 对象......我希望这次我的问题很清楚,上次人们并没有真正理解我想要做什么。
无论如何,谢谢!编辑 1:这是我的程序的求解行(这是我必须做的工作,没有参数)(我在这里使用了一个固定值)
int main()
{
HANDLE device;
device = CreateFile(L"\\\\.\\F:", // Drive to open
GENERIC_READ | GENERIC_WRITE, // Access mode
FILE_SHARE_READ | FILE_SHARE_WRITE, // Share Mode
NULL, // Security Descriptor
OPEN_EXISTING, // How to create
0, // File attributes
NULL);
}
这是带参数的(不起作用)
int main(int argc, char* argv[])
{
HANDLE device;
device = CreateFile(argv[1], // Drive to open
GENERIC_READ | GENERIC_WRITE, // Access mode
FILE_SHARE_READ | FILE_SHARE_WRITE, // Share Mode
NULL, // Security Descriptor
OPEN_EXISTING, // How to create
0, // File attributes
NULL); // Handle to template
}
^ 这显示了我想要做什么
编辑 2:我将其更改CreateFile
为CreateFileA
,这是它给我的 eroor 代码(驱动器 D 是 USB,它不是硬盘驱动器)
因此,除非我输入错误的路径来输入路径,否则它总是会给我错误。我想我会尝试另一种方法来解决问题,或者如果有人知道为什么会发生错误,请告诉!