★★★ 给200分BCB翻译成DELPHI则运行出错★★★ (200分)

  • 主题发起人 zhuang_jia
  • 开始时间
Z

zhuang_jia

Unregistered / Unconfirmed
GUEST, unregistred user!
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "stockdrv.h"
#include <stdio.h>


//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::OnStkDataOK(TMessage &amp;Message)
{
// 注意:
// 必须按字节对齐编译
char szBuf[200];
PRCV_DATA pRcvData = (PRCV_DATA)Message.LParam;
switch( Message.WParam )
{
case RCV_REPORT:
{
PRCV_REPORT_STRUCTEx pReport = pRcvData->m_pReport;
int nPacketNum = pRcvData->m_nPacketNum;
sprintf( szBuf, "%d,%s %s %8.3f ...", /nPacketNum, pReport->m_szLabel, pReport->m_szName, pReport->m_fNewPrice );
Memo1->Text = szBuf;
for(int i=0
i<nPacketNum
i++)
{
// ... 处理数据
pReport = (PRCV_REPORT_STRUCTEx)( ((PBYTE)pReport)+pReport->m_cbSize );
sprintf( szBuf, "%s %s %8.3f %8.3f", /
pReport->m_szLabel, pReport->m_szName,
pReport->m_fNewPrice, pReport->m_fOpen);
Memo1->Lines->Add(szBuf);
}
}
break;
case RCV_FILEDATA:
......

这里 sprintf( szBuf, "%d,%s %s %8.3f ...", /nPacketNum, pReport->m_szLabel, pReport->m_szName, pReport->m_fNewPrice );
在BCB下运行到这里pReport->m_szName是个有效字串,翻译成Delphi运行到这里pReport.m_szLabel=nil, 搜索论坛, 发现类似问题分散地讨论了几次, 但没有一次能够真正解决问题的, 所以再次提出请高手回答, 如果您能回答问题, 需要详细资料/C范例, 可以寄给。
 
顶部