首先抱歉我的英语不好。我不是英国人。 我打算编写一个列出所有可用逻辑磁盘驱动器的程序。然后要求用户选择一个驱动器。然后获取文件扩展名并在给定驱动器(包括目录和子目录)中搜索该文件类型。程序应该能够在Windows XP及更高版本上运行。它应该是单独的应用程序。我不是C的专家。我有一些C#的手。我在这方面有以下问题。 1.是否有任何IDE /工具可以在其中编写C#代码,直接编译为单独的Windows独立应用程序? 2.你能推荐一些我可以使用状态转发的库吗?就像在C#中使用一样? (我已经看到了直截了当的研究。)
我修改了一些我作为初创公司测试的代码。
#include <windows.h>
#include <direct.h>
#include <stdio.h>
#include <tchar.h>
#include<conio.h>
#include<dirent.h>
//------------------- Get list of all fixed drives in char array. only drive letter is get. not path.
// add ":\" to build path.
char AllDrives[26];
DWORD GetAllDrives()
{
int AvlDrives=0;
DWORD WorkState=-1;
//TCHAR DrivePath[] = _T("A:\\"); //Orignal Type
//start getting for drive a:\ to onward.
char DrivePath[] = {"A:\\"};
//http://www.tenouk.com/cpluscodesnippet/getdrivetype.html
ULONG uDriveMask = _getdrives();
if (uDriveMask == 0)
{
WorkState=GetLastError();
printf("\r\nFailed to Get drives. Error Details : %lu", WorkState);
return WorkState;
}
else
{
WorkState=0xFF;
printf("The following logical drives are being used:\n");
while (uDriveMask) {
if (uDriveMask & 1)
{
UINT drvType=0;
drvType = GetDriveType(DrivePath);
if(drvType==3)
{
AllDrives[AvlDrives]= DrivePath[0];
AvlDrives++;
printf("\r\n%s",DrivePath);
}
}
++DrivePath[0]; //Scan to all scanable number of drives.
uDriveMask >>= 1;
}
}
return WorkState;
}
int main(int argc, char* argv[]) {
char DrivePath[]={"C:\\"};
char CurrentDrive[]={"C:\\"};
DWORD Drives=-1;
int d=0;
for( d=0; d<26; d++)
AllDrives[d]=' ';
Drives=GetAllDrives();
if(Drives >0)
{
int Length= sizeof(AllDrives);
for(int x=0; x<26; x++)
{
if(AllDrives[x]!=' ')
{
printf("\r\nFixed Drive : %c",AllDrives[x]);
}
}
}
getch();
}
答案 0 :(得分:0)
您可以使用visual studio编译器在Windows中编译C和C ++,它可以使用自己的IDE。安装visual studio时,它还会安装所需的库来编译C / C ++程序。还有其他可与Windows兼容的IDE和编译器,如DevC ++,CodeBlocks。