VC代码转VB
本人对VC不通,现有段VC的代码需要转成VB
自己已经先转了下,虽然执行时没有报错,但一直得不到自己要的效果,不知道是不是自己转换错了。
VC代码如下:
void CDemoDlg::OnBtnWriteSN()
{
// TODO: Add your control notification handler code here
CDevSNDlg devSNDlg;
if (IDOK != devSNDlg.DoModal())
{
m_static_tip.SetWindowText("用户取消操作");
return;
}
char pData[256] = {0};
sprintf(pData,"%s",devSNDlg.m_strDevSN.GetBuffer(0));
int nLength = devSNDlg.m_strDevSN.GetLength();
int ret = mxWriteDevSN(pData,nLength);
if (ret != 0)
{
m_static_tip.SetWindowText("写入设备序列号失败");
}
else
{
m_static_tip.SetWindowText("写入设备序列号成功");
}
}
希望高人能帮着转一下,mxWriteDevSN是引用的一个DLL的函数。
[解决办法]
什么地方没得到你想要的效果呢?
void CDemoDlg::OnBtnWriteSN() // sub button_click()
{
// TODO: Add your control notification handler code here
CDevSNDlg devSNDlg; // dim frm as new devSNDlg
if (IDOK != devSNDlg.DoModal()) // if frm.showMe()=vbFalse then '你在 devSNDlg 窗体实现在一个公有函数,让他返回一们boolean 在函数体中 返回之前调用 me.Show vbModal
{
m_static_tip.SetWindowText("用户取消操作"); // lbl_static_Tip.caption="用户取消操作
return; // exit sub
}
char pData[256] = {0}; // dim pDate(256) as byte
sprintf(pData,"%s",devSNDlg.m_strDevSN.GetBuffer(0)); // 这里可能只能用api copymemeory 来实现填充 pDate了
int nLength = devSNDlg.m_strDevSN.GetLength(); // dim nLength as long : nLength=len(devSNDlg.m_strDevSN)
int ret = mxWriteDevSN(pData,nLength); // dim ret as long : ret=mxWriteDevSN(pData,nLength)
if (ret != 0) // if (ret <>0) then
{
m_static_tip.SetWindowText("写入设备序列号失败"); // lbl_static_Tip.caption=""写入设备序列号失败"
}
else // else
{
m_static_tip.SetWindowText("写入设备序列号成功"); // lbl_static_Tip.caption=""写入设备序列号失败"
} // end if
} // end sub
其中 devSNDLG 大致代码
Private bReturn As Boolean
Public Function ShowMe() As Boolean
Me.Show vbModal
ShowMe=bReturn
End Function