[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Passing string via AmiVar



PureBytes Links

Trading Reference Links

Hello,

AmiVar is an UNION, you must assign only ONE field.
If you are assigning value to string you MUST NOT assign value to .val member
of an union.

AmiVar var;
var.type = VAR_STRING;
var.string = (char*)resultsym[11];
var.val = EMPTY_VAL;  /// WRONG !!! REMOVE THIS !

http://msdn.microsoft.com/en-us/library/y9zewe0d(VS.80).aspx

Also you must NOT return char arrays created on stack because they will
disappear when function goes out of scope. You must use gSite.Alloc() to allocate
memory dynamically and use this memory to write the string to.


Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "markedme9" <markedme9@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Sunday, August 30, 2009 10:51 PM
Subject: [amibroker] Passing string via AmiVar


> Hi, 
> 
> I am having trouble with passing strings. 
> I get access violation error. 
> 
> AmiVar AlterSymbol( int NumArgs, AmiVar *ArgsTable )
>  {
> AmiVar var;
> var.type = VAR_STRING;
> var.string = (char*)resultsym[11];
> var.val =  EMPTY_VAL;
> return var;
>  }
> 
> "AlterSymbol", { AlterSymbol, 0, 0, 0, 0, NULL } 
> 
> In AFL fomula it is called as
> AlterSymbol ();
> 
> 
> I dont get access violation error when I pass a string directly 
> var.string = "some text";
> 
> 
> Is this the right way to do it?
> 
> 
> Thanks
> 
> 
> 
> ------------------------------------
> 
> **** IMPORTANT PLEASE READ ****
> This group is for the discussion between users only.
> This is *NOT* technical support channel.
> 
> TO GET TECHNICAL SUPPORT send an e-mail directly to 
> SUPPORT {at} amibroker.com
> 
> TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
> http://www.amibroker.com/feedback/
> (submissions sent via other channels won't be considered)
> 
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> Yahoo! Groups Links
> 
> 
> 


------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/