請妖兄及大家幫忙 。碰到一個問題。能力有限,我實在搞不定了。用c#調通了。無奈,還是BCB順手。請不吝指教下,BCB下出現的這個問題。感激不盡
跟蹤下 ,看了看 為什么一個分配記憶體,一個沒有分配呢


問題描述:呼叫山東電信 短信彩信介面,電信的服務器端用C#開發。我用C#呼叫成功。BCB XE7出現下面問題。
其他介面呼叫均成功。就這個一個介面出錯誤 sms->bathSendSms()。
部分代碼:
_di_ISmsOperator sms=GetISmsOperator();
TStringDynArray a;
a.Length=1;
a[0]="13791678080";
DynamicArray<TForm1 *> frm; // frm 可以看到分配的空間 見上圖
frm.Length = 12;
DynamicArray<mtMessage *> mtMessageArray; // mtMessageArray 分配空間為空 見上圖
mtMessageArray.Length=1;
//導致下面出錯
mtMessageArray[0]=new mtMessage();
mtMessageArray[0]->phoneNumber=a;
mtMessageArray[0]->content="13791678080 批量發送";
sms->bathSendSms(Edit1->Text,EncodeStr(Edit2->Text),"",mtMessageArray);
uj5u.com熱心網友回復:
mtMessageArray.Length=1; 不是分配空間了嗎?uj5u.com熱心網友回復:

mtMessageArray.Length=1 在這一步跟蹤也是空。看到 frm 了嗎,他就可以。
uj5u.com熱心網友回復:
mtMessageArray.Length=1這個陳述句執行后,再查看mtMessageArray的資訊
mtMessage是什么型別的
uj5u.com熱心網友回復:
mtMessage 定義 ws匯入時自動生成的// ************************************************************************ //
// XML : mtMessage, global, <complexType>
// Namespace : http://sms.jwsserver.server.ema.ctc.com/
// ************************************************************************ //
class mtMessage : public TRemotable {
private:
UnicodeString Fcontent;
bool Fcontent_Specified;
UnicodeString Fdemo;
bool Fdemo_Specified;
Array_Of_string FphoneNumber;
bool FphoneNumber_Specified;
TXSDateTime* FsendTime;
bool FsendTime_Specified;
UnicodeString FsmsId;
bool FsmsId_Specified;
UnicodeString FsubCode;
bool FsubCode_Specified;
void __fastcall Setcontent(int Index, UnicodeString _prop_val)
{ Fcontent = _prop_val; Fcontent_Specified = true; }
bool __fastcall content_Specified(int Index)
{ return Fcontent_Specified; }
void __fastcall Setdemo(int Index, UnicodeString _prop_val)
{ Fdemo = _prop_val; Fdemo_Specified = true; }
bool __fastcall demo_Specified(int Index)
{ return Fdemo_Specified; }
void __fastcall SetphoneNumber(int Index, Array_Of_string _prop_val)
{ FphoneNumber = _prop_val; FphoneNumber_Specified = true; }
bool __fastcall phoneNumber_Specified(int Index)
{ return FphoneNumber_Specified; }
void __fastcall SetsendTime(int Index, TXSDateTime* _prop_val)
{ FsendTime = _prop_val; FsendTime_Specified = true; }
bool __fastcall sendTime_Specified(int Index)
{ return FsendTime_Specified; }
void __fastcall SetsmsId(int Index, UnicodeString _prop_val)
{ FsmsId = _prop_val; FsmsId_Specified = true; }
bool __fastcall smsId_Specified(int Index)
{ return FsmsId_Specified; }
void __fastcall SetsubCode(int Index, UnicodeString _prop_val)
{ FsubCode = _prop_val; FsubCode_Specified = true; }
bool __fastcall subCode_Specified(int Index)
{ return FsubCode_Specified; }
public:
__fastcall ~mtMessage();
__published:
__property UnicodeString content = { index=(IS_OPTN | IS_UNQL), read=Fcontent, write=Setcontent, stored = content_Specified };
__property UnicodeString demo = { index=(IS_OPTN | IS_UNQL), read=Fdemo, write=Setdemo, stored = demo_Specified };
__property Array_Of_string phoneNumber = { index=(IS_OPTN | IS_UNBD | IS_NLBL | IS_UNQL), read=FphoneNumber, write=SetphoneNumber, stored = phoneNumber_Specified };
__property TXSDateTime* sendTime = { index=(IS_OPTN | IS_UNQL), read=FsendTime, write=SetsendTime, stored = sendTime_Specified };
__property UnicodeString smsId = { index=(IS_OPTN | IS_UNQL), read=FsmsId, write=SetsmsId, stored = smsId_Specified };
__property UnicodeString subCode = { index=(IS_OPTN | IS_UNQL), read=FsubCode, write=SetsubCode, stored = subCode_Specified };
};
uj5u.com熱心網友回復:
不用動態陣列看看呢?直接new 一個物件試試會不會有問題?uj5u.com熱心網友回復:
mtMessageArray.Length=1這個陳述句執行后,mtMessageArray 也是空的
uj5u.com熱心網友回復:

直接new Ok的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/102989.html
標籤:基礎類
