[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: turnning lua code to executable in a C program
- From: Amir Ramezani <amir.ramezani1370@...>
- Date: Mon, 24 Aug 2015 13:21:46 +0430
my problem is, it doesnt work and does not bind to executable!
it open's it!, but writes to another file, but the file is different
from executable
۱۳۹۴-۰۶-۰۲ ۱۲:۳۶ GMT+۰۴:۳۰, Amir Ramezani <amir.ramezani1370@gmail.com>:
> i'm using windows 7, with GCC 4.8.1 with C++ 11 and lua 5.1
> l is a pointer to lua_State, and globalChunkInfo is a struct with
> these deffinitions:
> typedef struct GlobalChunkInfo {
> unsigned long offset;
> unsigned long length;
> unsigned long count;
> unsigned long long magic;
> } GlobalChunkInfo;
>
>
> ۱۳۹۴-۰۶-۰۲ ۱۲:۰۹ GMT+۰۴:۳۰, Sean Conner <sean@conman.org>:
>> It was thus said that the Great Amir Ramezani once stated:
>>> hello,
>>> i want to turn a lua code in my application to executable!
>>> i've wrote a code from
>>> http://github.com/qtnc/lua2exe
>>> but it doesn't work
>>> this is my compiler class which bind's the script:
>>
>> [ snip ]
>>
>>> what is the problem here? and how can i fix it
>>
>> First problem: the formatting. Horrible and extemely hard to read.
>>
>> Second problem: no indication of what operating system you are using
>> (MS-DOS? AmigaOS? BeOS? VMS?)
>>
>> Third problem: no indication of which C++ compiler you are using.
>>
>> Fourth problem: no indication of what Lua version you are using.
>>
>> Fifth problem: This isn't valid C++ code. For instance, this line:
>>
>> buffer=malloc(bufferlen);
>>
>> C++ mandates that you cast this to the proper type, so it should read
>> like:
>>
>> buffer = (char *)malloc(bufferlen);
>>
>> The C++ compiler you are using should have given a warning (or
>> error---I'm
>> not terribly versed in C++, but know enough to get code compiled).
>> Another
>> example: you have the following function:
>>
>> int output(const char *scr,bool dbg)
>> {
>> // ...
>> preparename(scr);
>> }
>>
>> scr is defined as a pointer to constant characters (characters that
>> read-only and cannot be changed). Yet the function for preparename():
>>
>> void preparename (char* s)
>> {
>> char* c = strrchr(s,'.');
>> if (c)
>> {
>> *c=0;
>> }
>> while (*(++s))
>> {
>> if (*s=='/' || *s=='\\')
>> {
>> *s='.';
>> }
>> }
>> }
>>
>> attempts to change it. Again, your C++ compiler should have warned you
>> about this as well.
>>
>> Sixth: What you've given us is incomplete and can't even be compiled
>> as
>> is (fifth problem not-withstanding) because of missing definitions. One
>> example is the definition of GlobalChunkInfo. Another is that you keep
>> using the variable 'l' for the Lua state, yet you don't have that
>> variable
>> defined anywhere---for instance, your public method compiler::compile()
>> references 'l', but you don't define in in the function, the class, nor
>> do
>> you pass it in as a parameter.
>>
>> Seventh: You don't state what exactly your problem is.
>>
>> I think you'll need to address these issue first before anyone can give
>> you more help with your issue.
>>
>> -spc
>>
>>
>>
>