Molim vas ako iko moze da pomogne, pomozite mi.
Znaci dobio sam zadatak da implementiram neki manji program. Treba da ga implementiram u Borland C++ Builderu (verzija 5.1).
Zadatak mi je da putem Microsoft-ovog ScriptControl-a zovem metode nekog VBScript-a i nazad. Znaci za sada u jednom TMemo imam dvije metode, Hello() i Goodbye() koje trebaju da uzmu parametre iz aplikacije i da pokazu jedan novi prozorcic u kojem pise "Hello Kevin" i "Goodbye Kevin". Samo jos da dodam da Edit1->Text sadrzi ime na pr. "Kevin" a Edit2->Text sadrzi ime metode tj. Hello() ili Goodbye().
Za sad mi kod za zvanje VBScript metode izgleda ovako:
Code:
LPSAFEARRAY *pSa; // Holds the name parameter
Variant varParameters;
varParameters = VarArrayCreate(OPENARRAY(int,(1, 1)), varVariant);
varParameters.PutElement(this->Edit1->Text,1);
// varParameters arrayet handed to the safeArrayet
pSa = varParameters.pparray;
// Convert the AnsiString from Edit1(name) to wChar
wchar_t *methodName;
wchar_t *ThisVariableHasNoFunctionOtherThenToAssureThatmethodNameIsntOverwritten;
AnsiString editStr = Edit2->Text;
editStr.WideChar(methodName, editStr.WideCharBufSize());
// Convert the AnsiString from Memo1 to wChar
wchar_t *wcharTextMemo;
AnsiString str = Memo1->Text;
str.WideChar(wcharTextMemo, str.WideCharBufSize());
// Add code to the ScriptControl
this->ScriptControl1->AddCode(wcharTextMemo);
// Run the script specified within the wchar_t ProcedureName with the
// parameters specified in tagSAFEARRAY Parameters
this->ScriptControl1->Run(methodName, pSa);
LPSAFEARRAY *pSa; // Holds the name parameter
Variant varParameters;
varParameters = VarArrayCreate(OPENARRAY(int,(1, 1)), varVariant);
varParameters.PutElement(this->Edit1->Text,1);
// varParameters arrayet handed to the safeArrayet
pSa = varParameters.pparray;
// Convert the AnsiString from Edit1(name) to wChar
wchar_t *methodName;
wchar_t *ThisVariableHasNoFunctionOtherThenToAssureThatmethodNameIsntOverwritten;
AnsiString editStr = Edit2->Text;
editStr.WideChar(methodName, editStr.WideCharBufSize());
// Convert the AnsiString from Memo1 to wChar
wchar_t *wcharTextMemo;
AnsiString str = Memo1->Text;
str.WideChar(wcharTextMemo, str.WideCharBufSize());
// Add code to the ScriptControl
this->ScriptControl1->AddCode(wcharTextMemo);
// Run the script specified within the wchar_t ProcedureName with the
// parameters specified in tagSAFEARRAY Parameters
this->ScriptControl1->Run(methodName, pSa);
Program radi kako treba dok ne dodje do zadnje linije i zove Run metodu, gdje crash-a jer mi je pSa cini mi se prazan. Takodje imam problem sa wideChar-ovima jer jedan prepise drugi, ako ne uvedem ThisVariableHasNoFunctionOtherThenToAssureThatmethodNameIsntOverwritten.
Znaci molim nekoga, ko je radio sa ovim ranije ili ako moze da sazna kako mogu da rijesim ovaj problem, da mi pomogne
Unaprijed puno hvala