紧急求助 C++到C#的代码转换

xhwfly 2011-10-21 09:43:49
在C++ Builder的工程文件中有以下的代码,以下代码实现的机能要用C#来实现(也就是在C#下实现下面C++的代码),希望高手能帮忙解决下,不胜感激。

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE di_p_mutex;
int di_s4b_result;
OSVERSIONINFO di_t_version_infomation;
bool di_b_result;
bool di_b_exists_result[JE_SV_COMM_VARIABLE_INI_S4B4]; // 文件夹判定用
int di_s4b_count; // 循环变量
AnsiString di_s_dialog_message; // 对话框表示消息

memset( di_b_exists_result, true, sizeof(di_b_exists_result) ); // 判定結果初期化
di_s_dialog_message = “”; // 消息
try
{
di_p_mutex =
OpenMutex(
MUTEX_ALL_ACCESS,
false,
JE_SV_APPLICATION_NAME
);
if (di_p_mutex == NULL)
{
CreateMutex(NULL,true, “测试用应用程序”);
}
else
{
Application->MessageBoxA(
“消息内容”,
“标题”
MB_TOPMOST+MB_ICONSTOP+MB_OK);
return JE_SV_APPLICATION_RETURN;
}

di_t_version_infomation.dwOSVersionInfoSize =
sizeof(di_t_version_infomation);

GetVersionEx(&di_t_version_infomation); // windows的版本信息取得

switch(di_t_version_infomation.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT : // WindowsNT,2000,XP
break;
case VER_PLATFORM_WIN32s : // Windows95以前
case VER_PLATFORM_WIN32_WINDOWS : // Windows95,98,Me
default : // 其他
Application->MessageBoxA( //
“消息内容”
“标题”
MB_OK + MB_DEFBUTTON1 + MB_ICONERROR);
return JE_SV_APPLICATION_RETURN;
}

/* 文件夹有无的判断 *、
di_b_exists_result[0] =
DirectoryExists( “C:\Documents and Settings”);

di_b_exists_result[1] =
DirectoryExists( “C:\Documents and Settings\All Users”);

di_b_exists_result[2] =
DirectoryExists( “C:\Documents and Settings\All Users\Favorites”);

di_b_exists_result[3] =
DirectoryExists( "C:\Documents and Settings\Administrator");

for ( di_s4b_count = 0
di_s4b_count < 4
di_s4b_count++ )
{
if ( di_b_exists_result[di_s4b_count] != true )
{
di_s_dialog_message += // 文件夹名连接
“\n” +
"."+
"文件夹名";
}
}

if ( di_s_dialog_message != “”)
{
di_s_dialog_message =
“文件夹做成”+
di_s_dialog_message;

di_s4b_result =
Application->MessageBoxA(
di_s_dialog_message.c_str(),
“标题”,
MB_TOPMOST+MB_ICONINFORMATION+
MB_YESNO);
if (di_s4b_result == IDYES)
{
for ( di_s4b_count = 0;
di_s4b_count < 4;
di_s4b_count++ )
{
if ( true !=
di_b_exists_result[di_s4b_count] )
{
di_b_result = // 文件夹作成
CreateDir(“C:\Documents and Settings”.c_str());
if ( di_b_result != true )
{
Application->MessageBoxA(
“创建文件夹”,
“标题”,
MB_TOPMOST+MB_ICONSTOP+MB_OK);
return JE_SV_APPLICATION_RETURN;
}
}
}
}
else
{
return JE_SV_APPLICATION_RETURN;
}
}
Application->Initialize();
Application->Title =
JE_SV_APPLICATION_TITLE;
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TVersionForm), &VersionForm);
Application->CreateForm(__classid(TLoopCountForm), &LoopCountForm);
Application->CreateForm(__classid(TOptionSetForm), &OptionSetForm);
Application->CreateForm(__classid(TPauseForm), &PauseForm);
Application->CreateForm(__classid(TSingleOperationSvForm),&SingleOperationSvForm);
Application->CreateForm(__classid(TSingleOperationFileForm), &SingleOperationFileForm);
Application->CreateForm(__classid(TSingleOperationEmForm), &SingleOperationEmForm);
Application->CreateForm(__classid(TFileSelectForm), &FileSelectForm);
Application->CreateForm(__classid(TSingleOperationEnbFrom), &SingleOperationEnbFrom);
Application->CreateForm(__classid(TWaitingForm), &WaitingForm);
Application->CreateForm(__classid(TWaitingForm), &WaitingForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return JE_SV_APPLICATION_RETURN;
}
...全文
60 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdl2005lyx 2011-10-25
  • 打赏
  • 举报
回复
问题太难,分数太少,每人愿意接啊。。。
xhwfly 2011-10-21
  • 打赏
  • 举报
回复
在线等,期待好心人

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧