年末, 寻找C++代码翻译Java代码,高手出现吧 .!!! 高分送上 ..

Even__Chung 2009-01-21 09:15:43


// UpgradeDialog.cpp : implementation file
//

#include "stdafx.h"
#include "Upgrade.h"
#include "UpgradeDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CUpgradeDialog dialog


CUpgradeDialog::CUpgradeDialog(CWnd* pParent /*=NULL*/)
: CDialog(CUpgradeDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CUpgradeDialog)
m_strUpgrade = _T("");
//}}AFX_DATA_INIT
// m_FileName = _T("");
// m_FilePath = _T("");
m_strMCUName = _T("");
m_MCUIPAddr = 0;
m_hFile = NULL;
}


void CUpgradeDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CUpgradeDialog)
DDX_Text(pDX, IDC_STATIC_UPGRADE, m_strUpgrade);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUpgradeDialog, CDialog)
//{{AFX_MSG_MAP(CUpgradeDialog)
ON_WM_SHOWWINDOW()
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUpgradeDialog message handlers


void CUpgradeDialog::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);

// TODO: Add your message handler code here
//
m_strUpgrade = "正在准备升级……";
this->UpdateData(FALSE);

UINT Timer = this->SetTimer(1,1000,NULL);
if (Timer == 0)
{
this->m_strUpgrade = "升级失败,自动退出……";
this->UpdateData(FALSE);
Sleep(1000);

this->EndDialog(1);
}
}

void CUpgradeDialog::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
KillTimer(nIDEvent);

SOCKET sClient;

__try
{
SOCKADDR_IN McuIPAddr;

// FILEINFO fInfo;
// UpgradeFile* pUpgradeFile = m_pUpgradeFile;
unsigned long ACK_REV = 0xFFFFFFFF;

//建立socket连接
m_strUpgrade = "正在连接";// + m_strMCUName + "(MCU)……";
m_strUpgrade += m_strMCUName;
m_strUpgrade += "(MCU)……";
UpdateData(FALSE);

m_strUpgrade = "连接";// + m_strMCUName + "失败自动退出……";
m_strUpgrade += m_strMCUName;
m_strUpgrade += "失败自动退出……";

if ((sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == INVALID_SOCKET)
{
return;
}

McuIPAddr.sin_family = AF_INET;
McuIPAddr.sin_port = htons(MCU_UPGRADE_PORT);
McuIPAddr.sin_addr.S_un.S_addr = m_MCUIPAddr;//inet_addr("172.96.33.85");//m_MCUIPAddr;

if (connect(sClient,(SOCKADDR *)&McuIPAddr,sizeof (McuIPAddr)) == SOCKET_ERROR)
{
// this->MessageBox("test");
return;
}

m_strUpgrade = "握手";// + m_strMCUName + "(MCU)失败自动退出……";
m_strUpgrade += m_strMCUName;
m_strUpgrade += "(MCU)失败自动退出……";
if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_CONNECT_OK)
{
return;
}
TRACE0("连接MCU成功\n");

//等待停止MCU服务
this->m_strUpgrade = "正在停止";// + m_strMCUName +"的MCU服务……";
m_strUpgrade += m_strMCUName;
m_strUpgrade += "的MCU服务……";
this->UpdateData(FALSE);


m_strUpgrade = "停止";// + m_strMCUName + "的MCU服务失败自动退出……";
m_strUpgrade += m_strMCUName;
m_strUpgrade += "的MCU服务失败自动退出……";
if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_STOP_MCU)
{
return;
}

TRACE0("停止MCU成功\n");
if (send(sClient, (char *)&m_FileInfo, sizeof(m_FileInfo), 0) == SOCKET_ERROR)
{
return;
}

m_strUpgrade = "正在发送文件";// + pUpgradeFile->m_FileName + "……";
m_strUpgrade += m_FileInfo.FileName;
m_strUpgrade += "……";
this->UpdateData(FALSE);

m_hFile = CreateFile(m_PathName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_HIDDEN, NULL);
if (m_hFile == INVALID_HANDLE_VALUE)
{
m_strUpgrade = "打开文件";// + pUpgradeFile->m_FileName + "失败自动退出……";
m_strUpgrade += m_FileInfo.FileName;
m_strUpgrade += "失败自动退出……";

return;
}

m_strUpgrade = "发送文件";// + pUpgradeFile->m_FileName + "失败自动退出……";
m_strUpgrade += m_FileInfo.FileName;
m_strUpgrade += "失败自动退出……";

if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_REV_FILEINFO)
{
return;
}

if (!TransmitFile(sClient, m_hFile, 0, 0, NULL, NULL, 0))
{
return;
}
TRACE0("发送文件成功\n");
if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_REV_FILE)
{
return;
}

/* while (pUpgradeFile != NULL)
{
m_strUpgrade = "正在发送文件";// + pUpgradeFile->m_FileName + "……";
m_strUpgrade += pUpgradeFile->m_FileName;
m_strUpgrade += "……";
this->UpdateData(FALSE);

strcpy(fInfo.FileName,LPCSTR(pUpgradeFile->m_FileName));

m_hFile = CreateFile(LPCTSTR(pUpgradeFile->m_FilePath), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_HIDDEN, NULL);
if (m_hFile == INVALID_HANDLE_VALUE)
{
m_strUpgrade = "打开文件";// + pUpgradeFile->m_FileName + "失败自动退出……";
m_strUpgrade += pUpgradeFile->m_FileName;
m_strUpgrade += "失败自动退出……";

return;
}
fInfo.FileSize = GetFileSize(m_hFile, NULL);

m_strUpgrade = "发送文件";// + pUpgradeFile->m_FileName + "失败自动退出……";
m_strUpgrade += pUpgradeFile->m_FileName;
m_strUpgrade += "失败自动退出……";
if (send(sClient, (char *)&fInfo, sizeof(FILEINFO), 0) == SOCKET_ERROR)
{
return;
}

if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_REV_FILEINFO)
{
return;
}

if (!TransmitFile(sClient, m_hFile, 0, 0, NULL, NULL, 0))
{
return;
}

if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_REV_FILE)
{
return;
}

CloseHandle(m_hFile);
m_hFile = NULL;
pUpgradeFile = pUpgradeFile->m_pNext;
Sleep(2000);
}
*/
//正在升级MCU
this->m_strUpgrade = "文件传送完毕,正在升级MCU服务……";
this->UpdateData(FALSE);

this->m_strUpgrade = "升级MCU服务失败";
if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV != ACK_REV_UPGRADE_OK)
{
return;
}
else
{
this->m_strUpgrade = "MCU服务升级成功";
this->UpdateData(FALSE);
}
Sleep(2000);

//启动MCU服务
this->m_strUpgrade = "正在启动MCU服务……";
this->UpdateData(FALSE);

this->m_strUpgrade = m_strMCUName;// + "(MCU)服务启动失败";
this->m_strUpgrade += "(MCU)服务启动失败";;
if (recv(sClient, (char*)&ACK_REV, sizeof(ACK_REV), 0) == SOCKET_ERROR)
{
return;
}

if (ACK_REV == ACK_REV_MCU_ERROR)
{
this->m_strUpgrade = m_strMCUName;// + "(MCU)服务重新启动";
this->m_strUpgrade += "(MCU)服务重新启动失败";
this->UpdateData(FALSE);
return;
}
else if (ACK_REV == ACK_REV_MCU_OK)
{
this->m_strUpgrade = m_strMCUName;// + "(MCU)服务重新启动";
this->m_strUpgrade += "(MCU)服务重新启动";
this->UpdateData(FALSE);
}
}
__finally
{
UpdateData(FALSE);
closesocket(sClient);
CloseHandle(m_hFile);
m_hFile = NULL;

Sleep(20000);
this->EndDialog(0);
}

// CDialog::OnTimer(nIDEvent);
return;
}

BOOL CUpgradeDialog::VerifyFile()
{
//

return TRUE;
}

void CUpgradeDialog::OnOK()
{
return;
}

void CUpgradeDialog::OnCancel()
{
return;
}







把以上代码 翻译为 java 代码

高分送上
...全文
328 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ochinchina 2009-02-02
  • 打赏
  • 举报
回复
代码大概这样,只翻译了onTimer()
import java.io.InputStream;
import java.io.FileInputStream;
import java.net.Socket;

public class CUpgradeDialog {

private static final int ACK_CONNECT_OK = 1;
private static final int ACK_STOP_MCU = 2;
private static final int ACK_REV_FILEINFO = 3;
private static final int ACK_REV_FILE = 4;
private static final int ACK_REV_UPGRADE_OK = 5;
private static final int ACK_REV_MCU_ERROR = 6;
private static final int ACK_REV_MCU_OK = 7;

private String m_strUpgrade;
private int ACK_REV;
private FileInfo m_FileInfo;
private String m_MCUIPAddr;
private int MCU_UPGRADE_PORT;
private String m_strMCUName;
private String m_PathName;

public void onTimer() {
Socket sock = null;
InputStream in = null;

try {
m_strUpgrade = "正在连接" + m_strMCUName + "(MCU)...";
System.out.println( m_strUpgrade );
m_strUpgrade = "连接" + m_strMCUName + "失败自动退出……";
System.out.println( m_strUpgrade );
sock = new Socket( m_MCUIPAddr, MCU_UPGRADE_PORT );
m_strUpgrade = "握手" + m_strMCUName + ""(MCU)失败自动退出……" ;
System.out.println( m_strUpgrade );
int ACK_REV = sock.getInputStream().read();
if( ACK_REV != ACK_CONNECT_OK ) {
return;
}
System.out.println("连接MCU成功");
m_strUpgrade = "正在停止" + m_strMCUName + "的MCU服务……";
System.out.println( m_strUpgrade );
m_strUpgrade = "停止" + m_strMCUName + "的MCU服务失败自动退出……";
ACK_REV = sock.getInputStream().read();
if( ACK_REV != ACK_STOP_MCU ) {
return;
}
System.out.println("停止MCU成功" );
sock.getOutputStream().write( m_FileInfo.getBytes() );
m_strUpgrade = "正在发送文件" + m_FileInfo.FileName + "....";

try {
in = new FileInputStream( m_PathName );
}catch( Exception ex ) {
m_strUpgrade = "打开文件" + m_FileInfo.FileName + "失败自动退出……";
System.out.println( m_strUpgrade );
return;
}

m_strUpgrade = "发送文件" + m_FileInfo.FileName + "失败自动退出……" );
ACK_REV = sock.getInputStream().read();
if( ACK_REV != ACK_REV_FILEINFO ) {
return;
}

if( !TransmitFile( sock, in ) ) {
return;
}
System.out.println( "发送文件成功" );
ACK_REV = sock.getInputStream().read();
if( ACK_REV != ACK_REV_FILE ) {
return;
}
m_strUpgrade = "文件传送完毕,正在升级MCU服务……";
System.out.println( m_strUpgrade );
m_strUpgrade = "升级MCU服务失败";
ACK_REV = sock.getInputStream().read();
if( ACK_REV != ACK_REV_UPGRADE_OK) {
return;
}
m_strUpgrade = "MCU服务升级成功";

System.out.println( m_strUpgrade );
m_strUpgrade = "正在启动MCU服务……";
System.out.println( m_strUpgrade );
m_strUpgrade = m_strMCUName + "(MCU)服务启动失败";
ACK_REV = sock.getInputStream().read();
if( ACK_REV == ACK_REV_MCU_ERROR ) {
m_strUpgrade = m_strMCUName + (MCU)服务重新启动失败";
System.out.println( m_strUpgrade );
} else if(ACK_REV == ACK_REV_MCU_OK) {
m_strUpgrade = m_strMCUName + "(MCU)服务重新启动";
System.out.println( m_strUpgrade );
}
}catch( Exception ex ) {
}finally {
try {
sock.close();
}catch( Exception ex ) {
}
try {
in.close();
}catch( Exception ex ) {
}
}
}
}
healer_kx 2009-02-02
  • 打赏
  • 举报
回复
我都懂,我就是不喜欢翻译。
Nationalist 2009-02-02
  • 打赏
  • 举报
回复
up
reality 2009-02-02
  • 打赏
  • 举报
回复
1 打开一个窗口
2 启动工作定时器
3 做socket连接 和服务器端进行数据交互
4 最后关闭socket 关闭窗口

配套的应该还有一个主工作程序,用来启动这个窗口
L502650 2009-02-02
  • 打赏
  • 举报
回复
不碰C++好多年。。
huhaihong 2009-02-01
  • 打赏
  • 举报
回复
很难翻译的哦
huanmie1986 2009-01-31
  • 打赏
  • 举报
回复
这个你得自己研究了, 体制不一样啊
huhk 2009-01-30
  • 打赏
  • 举报
回复
#include "Upgrade.h"
#include "UpgradeDialog.h"
这两个头文件都没有贴出来呀
JamesLiu 2009-01-24
  • 打赏
  • 举报
回复
你直接本地化不就可以了吗
KOOK_OKKO 2009-01-24
  • 打赏
  • 举报
回复
chen2319 2009-01-23
  • 打赏
  • 举报
回复
晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕晕
Even__Chung 2009-01-22
  • 打赏
  • 举报
回复
都晕喽????
忽忽 ...
melody1128 2009-01-22
  • 打赏
  • 举报
回复
java & C++???
这两个东西???
。。。???
lovefeel2004 2009-01-21
  • 打赏
  • 举报
回复
这个明摆就是来这里骗程序的
Miracle1216 2009-01-21
  • 打赏
  • 举报
回复
Cpp已经看不懂了,汗……
kao331431214 2009-01-21
  • 打赏
  • 举报
回复
不会额~
Even__Chung 2009-01-21
  • 打赏
  • 举报
回复
晕 ..
没人会呀 ..
ZangXT 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mizukusa 的回复:]
有些地方不是很明白,C++果然是个好东西!
[/Quote]
关键是MFC的问题
mizukusa 2009-01-21
  • 打赏
  • 举报
回复
有些地方不是很明白,C++果然是个好东西!
TeaHON 2009-01-21
  • 打赏
  • 举报
回复
up
加载更多回复(9)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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