返回字符串/BYTE数组 RemoteDataModule问题(C Builder) ( 积分: 200 )

  • 主题发起人 主题发起人 HeXiang Le
  • 开始时间 开始时间
H

HeXiang Le

Unregistered / Unconfirmed
GUEST, unregistred user!
如果用CBuilder实现如这个功能:


客户机调用服务器函数, 传BYTE数组到服务器, 服务器处理完成后通过参数返回BYTE数据.

Proce(传入BYTE数组,返回BYTE数组)
 
void proce( BYTE *InByte,BYTE *OutByte)
{

}
 
enterwin:
这不是我想要的!
1.你新建一个Application.
2.New -> Remote Data Module
3.View->Type Library
4.增加函数.
如果按照
void proce( BYTE *InByte,BYTE *OutByte)
{

}
定义, 那么只能传入一个字节, 传出一个字节.

各位走过路过的前辈, 帮帮我吧, 我快疯了.
 
试了N种方法都没有看到我要的结果. 一个问题搞了差不多一个星期了,
 
有人用过C Builder中的那个View->Type Library吗?
我在里面自定义了一个结构体类型, 然后使用这个结构体类型作为参数, 可是一执行后服务器端的函数根本没有被调用.
 
#include <vcl.h>
#pragma hdrstop

#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
int force( BYTE *InByte, BYTE *OutByte)
{
while( *InByte)
{
*OutByte = *InByte;
++OutByte;
++InByte;
}
return 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{
BYTE InByte[10],OutByte[10];
// assign Inbyte data
for (int i = 0; i < 10; i++)
{
InByte=i+1;
}
force(InByte,OutByte);
}

//没有问题啊,你需要移动指针才行,再有,最好传进数组的个数,这样才能确定需要处理多少字符,因为数组成员可能有NULL,这样就不好处理。
 
HeXiang Lee,你的问题解决了吧,对于*InByte,*OutByte都是指针,所以需要引用指针取值
 
接受答案了.
 
后退
顶部