SRL Archive - S.M.A.R.T. Questions and Answers.

How do i compile SMART?


Shuttleu

2010-09-04 07:48:31

How do i compile SMART, whenever i try i get
From: cmd
C:\Users\Thomas\Desktop\New folder>make windows
"Compiling Main.cpp"
The syntax of the command is incorrect.
make: *** [build/windows/Main.o] Error 1


can someone show a step by step guide on how to do it? it would not only help me but other people who want to compile smart as well

thanks

~shut

EDIT: i asume this is the latest smart? http://blanddns.no-ip.org:81/repos/public-smart/

EDIT: if i use linux would i be ok with just g++ and java JDK?

Wizzup?

2010-09-04 08:36:17

You need MinGW. (Or microsoft compiler, I'm not sure what Benland uses).

Shuttleu

2010-09-04 09:28:05

i have been looking around and trying both mingw and visual c but none seem to work, im wondering if i need to compile it in linux

~shut

Wizzup?

2010-09-04 10:00:03

I would build it for you but atm I can only build it for 32 bit; for some reason my computer does not have a 64 bit mingw-g++…

Wanted

2010-09-04 15:29:59

http://freddy1990.com/svn/smart/ might be helpful

Wizzup?

2010-09-04 16:14:32

From: IceFire908
http://freddy1990.com/svn/smart/ might be helpful


Considering we have http://blanddns.no-ip.org:81/repos/public-smart/ I don't think it will be useful. Especially since I assume that the repository you just linked to is specific to SCAR; and SCAR cannot even load 64 bit plugins since Delphi has no 64 bit support. (lol)

And it is not useful to him at all considering it is a compiler he needs, not alternative SMART sources.

Wanted

2010-09-04 16:21:04

From: Wizzup?
Considering we have http://blanddns.no-ip.org:81/repos/public-smart/ I don't think it will be useful. Especially since I assume that the repository you just linked to is specific to SCAR; and SCAR cannot even load 64 bit plugins since Delphi has no 64 bit support. (lol)

And it is not useful to him at all considering it is a compiler he needs, not alternative SMART sources.


Hence why I used the word might

Wizzup?

2010-09-04 16:22:14

From: IceFire908
Hence why I used the word might


You could have better just not posted… :duh:

E: I realize however that you couldn't have known that he was compiling a 64 bit version. See http://villavu.com/forum/showpost.php?p=734874&postcount=17

Wanted

2010-09-04 16:32:30

From: Wizzup?
You could have better just not posted… :duh:

E: I realize however that you couldn't have known that he was compiling a 64 bit version. See http://villavu.com/forum/showpost.php?p=734874&postcount=17


Makes more sense now

Shuttleu

2010-09-04 17:34:02

is this a good guide on how to set up 64 bit compiler?
http://tinc-vpn.org/examples/cross-compiling-64-bit-windows-binary/

~shut

Wizzup?

2010-09-04 18:27:48

Ubuntu made it extremely easy for me to set up a cross compiler to win32, and included gcc for win64, but not g++…

Shuttleu

2010-09-04 18:41:41

From: Wizzup?
Ubuntu made it extremely easy for me to set up a cross compiler to win32, and included gcc for win64, but not g++…


i know what you mean, i have gcc but no g++

~shut

moparisthebest

2010-09-05 00:39:40

I've gotten it to compile no problems for 32-bit and 64-bit linux, and 32-bit windows (all under 64-bit linux), and I've also tried the mingw 64-bit windows compiler from 3 different sources so far, and all error out with the same error, so I'd say it's either a flag thing or something needs fixed in the code (unlikely since it compiles for 64-bit linux)

~/simba/public-smart$ make windows 
Compiling Color.cpp
src/Color.cpp: In function ‘long int setTarget(PRGB, int, int)’:
src/Color.cpp:43:24: warning: cast from ‘PRGB’ to ‘long int’ loses precision [-fpermissive]
Compiling Java Classes...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Compiling Class Cypher
Encoding Java classes...
+build/java/java/awt/Canvas.class
+build/java/java/awt/Canvas$AccessibleAWTCanvas.class
+build/java/smart/Client.class
+build/java/smart/EventNazi$KeySender.class
+build/java/smart/Client$2.class
+build/java/smart/EventRedirect.class
+build/java/smart/Client$3.class
+build/java/smart/ClientStub.class
+build/java/smart/Client$4.class
+build/java/smart/Client$1.class
+build/java/smart/UnblockedEvent.class
+build/java/smart/EventNazi.class
+build/java/smart/BlockingEventQueue.class
Compiling Classloader.cpp
Compiling Input.cpp
Compiling Reflection.cpp
src/Reflection.cpp: In function ‘long int getFieldObject(jobject, char*)’:
src/Reflection.cpp:96:31: warning: cast from ‘jobject’ to ‘long int’ loses precision [-fpermissive]
src/Reflection.cpp: In function ‘long int getFieldArrayObject(jobject, char*, int)’:
src/Reflection.cpp:209:31: warning: cast from ‘jobject’ to ‘long int’ loses precision [-fpermissive]
src/Reflection.cpp: In function ‘long int getFieldArray3DObject(jobject, char*, int, int, int)’:
src/Reflection.cpp:335:31: warning: cast from ‘jobject’ to ‘long int’ loses precision [-fpermissive]
src/Reflection.cpp: In function ‘long int getFieldArray2DObject(jobject, char*, int, int)’:
src/Reflection.cpp:459:31: warning: cast from ‘jobject’ to ‘long int’ loses precision [-fpermissive]
Compiling JVM.cpp
Compiling Smart.cpp
src/Smart.cpp: In function ‘long int getImageHDC()’:
src/Smart.cpp:62:19: warning: cast from ‘HDC’ to ‘long int’ loses precision [-fpermissive]
src/Smart.cpp: In function ‘long int getDebugHDC()’:
src/Smart.cpp:66:19: warning: cast from ‘HDC’ to ‘long int’ loses precision [-fpermissive]
src/Smart.cpp: In function ‘long int getImageArray()’:
src/Smart.cpp:72:19: warning: cast from ‘PRGB’ to ‘long int’ loses precision [-fpermissive]
src/Smart.cpp: In function ‘long int getDebugArray()’:
src/Smart.cpp:76:19: warning: cast from ‘PRGB’ to ‘long int’ loses precision [-fpermissive]
Compiling Main.cpp
/tmp/ccm8xBmY.s: Assembler messages:
/tmp/ccm8xBmY.s:547: Error: invalid instruction suffix for `pop'
/tmp/ccm8xBmY.s:603: Error: invalid instruction suffix for `pop'
make: *** [build/windows/Main.o] Error 1

The last one is really what matters, this is the only change I made to the makefile:
WIN_GPP=x86_64-w64-mingw32-g++ -fpermissive
#WIN_GPP=i586-mingw32msvc-g++

Any ideas?

Shuttleu

2010-09-05 01:11:29

From: moparisthebest


Any ideas?


well if it does require the -mingw32msvc-g++ compiler, then i have no idea

~shut

moparisthebest

2010-09-05 01:20:09

From: Shuttleu
well if it does require the -mingw32msvc-g++ compiler, then i have no idea

~shut


As I said, I have that, and for a 32-bit windows executable it works perfectly. It's the x86_64-mingw32msvc-g++ or amd64-mingw32msvc-g++ that gives the above, strange, error.

Shuttleu

2010-09-05 02:41:56

From: moparisthebest
As I said, I have that, and for a 32-bit windows executable it works perfectly. It's the x86_64-mingw32msvc-g++ or amd64-mingw32msvc-g++ that gives the above, strange, error.

where did you get amd64-mingw32msvc-g++ from?
i cant find it anywhere

~shut

EDIT: well im not on linux atm but when i compile it for x64 windows i get the pop error

~shut

moparisthebest

2010-09-05 14:07:09

From: Shuttleu
where did you get amd64-mingw32msvc-g++ from?
i cant find it anywhere

~shut

EDIT: well im not on linux atm but when i compile it for x64 windows i get the pop error

~shut


http://sourceforge.net/projects/mingw-w64/files/

Under 'toolchains targeting Win64'.

It has to be one of two things, the compiler is producing invalid assembly, or it is trying to use the wrong assembler (or an assembler that isn't correct).

Wizzup?

2010-09-05 14:09:04

Perhaps it has something to do with the stdcall that BenLand is still using?

Shuttleu

2010-09-05 14:14:42

im gonna try something, back to linux

~shut

Wizzup?

2010-09-05 14:28:36

http://wizzup.org/dirlist/patches/smart/ Patch #3 may be of some use there… But that was just a quick guess. (What I did there)

BenLand100

2010-09-05 14:33:02

From: Wizzup?
Perhaps it has something to do with the stdcall that BenLand is still using?

Fuck you. :D
And the problem is related to this, i believe I used asm hacks to get the exports/conventions correct for scar, so check the Plugin defining functions and fix them for your arch.

Shuttleu

2010-09-05 14:53:34

From: BenLand100
And the problem is related to this, i believe I used asm hacks to get the exports/conventions correct for scar, so check the Plugin defining functions and fix them for your arch.


so are you saying we need different versions for different architectures?

~shut

Wizzup?

2010-09-05 15:18:18

From: Shuttleu
so are you saying we need different versions for different architectures?

~shut


No, just some compiler directives.

Shuttleu

2010-09-05 15:21:07

From: Wizzup?
No, just some compiler directives.


ah, ok
it may seem like a nooby question, but what would i have to change?

is it this?
WIN_COMPILE_ARGS=-DWINDOWS -Wall -O0 -s -c


~shut

Wizzup?

2010-09-05 15:22:53

I do not yet know for myself. But it is not in the arguments. I'll have a look later if no one else does.

Freddy1990

2010-09-06 13:55:33

From: Wizzup?
Perhaps it has something to do with the stdcall that BenLand is still using?


I'm not sure how using stdcall would cause any issues, it's the most likely calling convention to work in any language… The entire Win32 api uses the stdcall convention, I'm guessing that wasn't written in Delphi…

Also, why are you so harsh on IceFire? He's obviously just trying to help, the branch of SMART I'm hosting has no adaptations at all aside from the exported functions having "string" replaced with "AnsiString", some insignificant changes to the makefile and a few replacements of LF to CRLF… It's fully compatible with every version of SCAR and Simba, I did not remove any of the linux support either. Please, don't just assume things and bother to check before you say something.

Wizzup?

2010-09-06 16:32:15

Hi, Long time no speak…

From: Freddy1990
I'm not sure how using stdcall would cause any issues, it's the most likely calling convention to work in any language… The entire Win32 api uses the stdcall convention, I'm guessing that wasn't written in Delphi…


http://en.wikipedia.org/wiki/X86_calling_conventions#Microsoft_x64_calling_convention

From: Freddy1990
Also, why are you so harsh on IceFire? He's obviously just trying to help, the branch of SMART I'm hosting has no adaptations at all aside from the exported functions having "string" replaced with "AnsiString", some insignificant changes to the makefile and a few replacements of LF to CRLF… It's fully compatible with every version of SCAR and Simba, I did not remove any of the linux support either. Please, don't just assume things and bother to check before you say something.


Did you notice that this was about SMART for 64 bit? His post was irrelevant; but it was my mistake for not posting this right away. We were talking about it in the other thread and to both shuttleu and me it was absolutely clear we were talking about x64, which is why it wasn't obvious to others in the first place.

Also, I don't really want to argue about this but I think the assumption that I made was quite valid even though I did not check it. (Which is why it is an assumption) I didn't expect you to fork SMART just to change the line ending in the Makefile. (And a few string -> ansistring) Especially since it is GPL, which basically doesn't even allow SCAR to load it… (Obviously this is the users mistake if he/she chooses to do so)

I have my of reasons to be more harsh to Icefire at times than to others; given some of his recent outbursts. (Of which I probably have some blame too) And if you really want to know, I already send an apology to Icefire by the time I realized he didn't know. He said it was not a problem. :)

Shuttleu

2010-09-06 16:50:28

so it needs to save XMM6 and XMM7 (floating point numbers) before and restore after each function?

and allocate 32 bytes on the shadow stack before calling a function and popping the stack after?

if so it sounds confuzzling :s

~shut

Wizzup?

2010-09-06 16:53:35

From: Shuttleu
so it needs to save XMM6 and XMM7 (floating point numbers) before and restore after each function?

~shut


No. If you want to get SMART to work on x64 you need to change line that contains the asm part. Benland only put it in because otherwise SCAR (Delphi really) couldn't call his function.

Shuttleu

2010-09-06 16:56:34

From: Wizzup?
No. If you want to get SMART to work on x64 you need to change line that contains the asm part. Benland only put it in because otherwise SCAR (Delphi really) couldn't call his function.


so would removing the asm hack stop it from working with simba?

sorry for asking all the questions

~shut

Freddy1990

2010-09-06 18:35:46

From: Wizzup?
I didn't expect you to fork SMART just to change the line ending in the Makefile.


Twas not I, twas MSVC! :surprised:

Wizzup?

2010-09-09 13:53:53

From: Shuttleu
so would removing the asm hack stop it from working with simba?

sorry for asking all the questions

~shut


I don't know. Give it a try?

BenLand100

2010-09-09 14:22:07

From: Freddy1990
Twas not I, twas MSVC! :surprised:

Why in gods name would you compile SMART with MSVC? Not only is MSVC proprietary and nonfree (e.g. other people have to buy/borrow/appropriate it to compile), its just not as good. Just use mingw/cgywin if you don't have a linux box.

Freddy1990

2010-09-09 15:57:16

From: BenLand100
Why in gods name would you compile SMART with MSVC? Not only is MSVC proprietary and nonfree (e.g. other people have to buy/borrow/appropriate it to compile), its just not as good. Just use mingw/cgywin if you don't have a linux box.


Actually, I use msvc as editor, I compile it with mingw… Why does everyone make blind assumptions around here? :duh: I own a copy of VS2010 Pro and I think it's quite good for editing c++, doesn't mean I have to compile with it…

Wizzup?

2010-09-09 16:11:27

We all know there is only one true editor.

Freddy1990

2010-09-09 16:38:57

From: Wizzup?
We all know there is only one true editor.


Lol'ed

Nava2

2010-09-09 16:55:14

From: Freddy1990
Lol'ed


*dislike*

vim is win! (..with some lines rearranged..)

Freddy1990

2010-09-10 13:33:28

From: Nava2
*dislike*

vim is win! (..with some lines rearranged..)


I don't lol at vim, I lol at "We all know…", I don't like to have things forced onto me… If you and Wizzup like VIM, that's fine, but that doesn't mean everyone has to like it.

Wizzup?

2010-09-10 13:57:19

You should give it a go some time, it's quite good actually… But yeah, it was a joke.

Nava2

2010-09-10 14:00:54

From: Wizzup?
You should give it a go some time, it's quite good actually… But yeah, it was a joke.


I haven't looked back! :)

Freddy1990

2010-09-10 14:14:17

From: Wizzup?
You should give it a go some time, it's quite good actually… But yeah, it was a joke.


I use vi in my ssh terminal for my ubuntu based vps, it's pretty good, but I've revently switched to nano, it's more intuitive. I'm not sure is Vim is available for windows, but if it is, I think there's probably better alternatives for Windows around. I don't use a linux desktop very often so I doubt I'll really need it.

Wizzup?

2010-09-10 14:28:51

It's pretty good with macros (one of the things I like anyway)
http://wizzup.org/static/vim.ogg
http://wizzup.org/static/vim2.ogg

http://wizzup.org/static/video/vimmacro-simbadoc.ogg

Sorry shuttleu, I'll stop going off topic now. :p

moparisthebest

2010-09-10 18:05:07

Offtopic:
Kate is really the best editor! :D

Ontopic:
I haven't tried changing anything to make it compile for x64 windows yet, but if/when I do I'll post it here for the op to test, since I can't (or rather, don't want) to test it.

moparisthebest

2010-09-11 12:59:57

The problem ended up being these two functions, inside an ifdef WINDOWS (in Main.cpp):

void GetFunctionCount() {
// asm ("popl %%ebp \n jmp *%0" : : "a" (functionCountAddr) : );
cout << "GetFunctionCount() not implemented for 64-bit windows\n";
}

void GetFunctionInfo() {
// asm ("popl %%ebp \n jmp *%0" : : "a" (functionInfoAddr) : );
cout << "GetFunctionInfo() not implemented for 64-bit windows\n";
}

This needs to be also written in amd64 assembly, or preferably converted to C or C++ code so it will remain platform independent.

If you can test if SMART even works this way, here is the latest Simba with SMART compiled for 64-bit windows:
http://www.moparisthebest.com/downloads/simba/Simba.x86_64-win64.7z

Shuttleu

2010-09-11 14:00:51

From: moparisthebest
The problem ended up being these two functions, inside an ifdef WINDOWS (in Main.cpp):

void GetFunctionCount() {
// asm ("popl %%ebp \n jmp *%0" : : "a" (functionCountAddr) : );
cout << "GetFunctionCount() not implemented for 64-bit windows\n";
}

void GetFunctionInfo() {
// asm ("popl %%ebp \n jmp *%0" : : "a" (functionInfoAddr) : );
cout << "GetFunctionInfo() not implemented for 64-bit windows\n";
}

This needs to be also written in amd64 assembly, or preferably converted to C or C++ code so it will remain platform independent.

If you can test if SMART even works this way, here is the latest Simba with SMART compiled for 64-bit windows:
http://www.moparisthebest.com/downloads/simba/Simba.x86_64-win64.7z


awesome, good to see you found out the problem, i will try it and see if it works

~shut

EDIT: this

EDIT: got the DLL file, and i got this
Exception in Script: Error loading plugin C:\Simba\Plugins\libsmart.dll

moparisthebest

2010-09-12 09:37:02

I think you got the first error fixed, since you posted a second error.

From: Shuttleu

EDIT: got the DLL file, and i got this
Exception in Script: Error loading plugin C:\Simba\Plugins\libsmart.dll


Is the plugin named libsmart.dll or is it still named Public_Smart.dll? (rename it to what it is requesting and try again)

Wizzup?

2010-09-12 09:43:58

It may be an error in Simba?

moparisthebest

2010-09-13 15:36:05

Did you try it again yet Shuttleu?

Shuttleu

2010-09-13 17:46:01

From: moparisthebest
Did you try it again yet Shuttleu?


it was requesting libsmart.dll and i changed it to libsmart (that is what gave me the results above)

~shut

moparisthebest

2010-09-13 18:51:39

From: Shuttleu
it was requesting libsmart.dll and i changed it to libsmart (that is what gave me the results above)

~shut


So you are saying the file 'C:\Simba\Plugins\libsmart.dll' exists and is the dll I provided?

If so, it's either a bug in Simba or more likely a bug in SMART introduced by my two comments.

Benland, why were those two functions written in assembly instead of C++ anyway?

moparisthebest

2010-09-22 03:46:48

Try the latest Simba for x64 windows here:
http://www.moparisthebest.com/downloads/simba/current/

I've modified Main.cpp and Main.h in SMART as so:
http://www.moparisthebest.com/downloads/simba/make_tools/plugin_builder/public-smart/src/
(conditional compilation on whether we are using 64-bit windows or not)

For those curious as to how to compile it for multiple architectures, look at the 4 relevant lines here:
http://www.moparisthebest.com/downloads/simba/make_tools/plugin_builder/Makefile

Why can't the two needed functions simply return a long like it does in Linux in windows? Is this solely due to SCAR compatibility? Or does Simba need it to do that as well? I don't know enough about SCAR/Simba plugins to answer this.

Wizzup?

2010-09-22 05:10:51

I think it was a hack to go from ccall to stdcall… But my memory may be failing me. Benland?

Shuttleu

2010-09-22 10:06:30

From: moparisthebest
Try the latest Simba for x64 windows here:
http://www.moparisthebest.com/downloads/simba/current/

I've modified Main.cpp and Main.h in SMART as so:
http://www.moparisthebest.com/downloads/simba/make_tools/plugin_builder/public-smart/src/
(conditional compilation on whether we are using 64-bit windows or not)

For those curious as to how to compile it for multiple architectures, look at the 4 relevant lines here:
http://www.moparisthebest.com/downloads/simba/make_tools/plugin_builder/Makefile

Why can't the two needed functions simply return a long like it does in Linux in windows? Is this solely due to SCAR compatibility? Or does Simba need it to do that as well? I don't know enough about SCAR/Simba plugins to answer this.


i dont have the 64-bit smart anymore :(

~shut

moparisthebest

2010-09-22 11:49:32

From: Wizzup?
I think it was a hack to go from ccall to stdcall… But my memory may be failing me. Benland?


It's definitely due to another calling convention, I'm just wondering if it is needed with Simba, or only with SCAR. (because, no offense to anyone, but I'm only compiling stuff for Simba, and I'm not interested in SCAR compatibility for these plugins)

From: Shuttleu
i dont have the 64-bit smart anymore :(

~shut


SMART is included, unless you mean you don't have 64-bit windows anymore. :)

Shuttleu

2010-09-22 12:33:25

From: moparisthebest
It's definitely due to another calling convention, I'm just wondering if it is needed with Simba, or only with SCAR. (because, no offense to anyone, but I'm only compiling stuff for Simba, and I'm not interested in SCAR compatibility for these plugins)



SMART is included, unless you mean you don't have 64-bit windows anymore. :)

oh so the smart that is in the 64-bit file is 64-bit smart?

~shut

moparisthebest

2010-09-22 12:53:17

From: Shuttleu
oh so the smart that is in the 64-bit file is 64-bit smart?

~shut


That's right, give it a shot and report back! :garfield:

Shuttleu

2010-09-22 13:03:59

still the invalid plugin error

~shut

Wizzup?

2010-09-22 14:04:18

From: Shuttleu
still the invalid plugin error

~shut


That may be because Simba does not yet have the patch for plugins by mopar.
I'm sorry but I really can't do it atm.

Also, I may not have mentioned this before guys; but SMART has worked for me on 64 bit linux for months (python w/ ctypes), just not yet from Simba. (Didn't test)

moparisthebest

2010-09-22 15:33:43

From: Wizzup?
That may be because Simba does not yet have the patch for plugins by mopar.
I'm sorry but I really can't do it atm.

Also, I may not have mentioned this before guys; but SMART has worked for me on 64 bit linux for months (python w/ ctypes), just not yet from Simba. (Didn't test)


If he used the x64 release then my patch doesn't matter, as the 64-bit dll is name libsmart.dll.

Does simba look for different functions when on windows than when on linux in the plugins? Because, if not, it should work…

Wizzup?

2010-09-22 15:49:00

From: moparisthebest
If he used the x64 release then my patch doesn't matter, as the 64-bit dll is name libsmart.dll.

Does simba look for different functions when on windows than when on linux in the plugins? Because, if not, it should work…


It doesn't, afaik. I'll just have to test it in a bit.

moparisthebest

2010-09-23 01:15:30

While trying to figure out how to run 64-bit windows programs under WINE, I may have stumbled onto an explanation as to why plugins work with 64-bit linux and not 64-bit windows:

http://wiki.winehq.org/Wine64#line-95
From: http://wiki.winehq.org/Wine64#line-95

The x86_64 ABI differs between Linux and Windows. One of the major differences is the size of the "long" type, which is 64 bits in Linux but 32 bits in Windows. Also the function calling convention differs. In both ABIs, parameters are preferably passed via registers, but the registers used differ. More on the Linux ABI can be found here, while information on the Windows ABI can be found here (hope this link survives in the future; if it doesn't, just search for "x64 Software Conventions" on MSDN).


I'm still working on a proper, portable way to export functions, I'll keep you guys updated.

(on a related note, could a pascal guru create me a command line program to load libraries using Simba's units and simply list the exported functions? This way I could verify plugin exports work on all systems without starting simba, writing scripts, and relying on the script engines not to break. I'm currently using the ones written in C++ by benland in the SMART repo, but I have no way of knowing if FPC does this differently…)

edit:
Good news, I did get libsmart64.dll to work under 64-bit windows and the test program:
http://pastie.org/private/ak6yqwj30efiyxsrq2lgxa
That was on win7 64 pro, however, under Vista 64 sp2, this error came up:
libsmart: The procedure entry point RegOpenKeyExA could not be located in the dynamic link libary KERNEL32.dll

Any ideas on that one?

edit2:
Just realized all the function pointers are 0, so something is still wrong there.

tom99

2010-10-14 12:50:42

smart is awsome, if i want to configure it to another java game do i need edit this line

new Client(ByteBuffer.allocate(w * h * 4), ByteBuffer.allocate(w * h * 4), w, h, "http://world79.runescape.com/","plugin.js?param=o0,a0,s0");

woud it be enough?

Shuttleu

2010-10-14 16:56:09

From: tom99
smart is awsome, if i want to configure it to another java game do i need edit this line

new Client(ByteBuffer.allocate(w * h * 4), ByteBuffer.allocate(w * h * 4), w, h, "http://world79.runescape.com/","plugin.js?param=o0,a0,s0");

woud it be enough?

try and find out, then let us know

~shut

tom99

2010-10-15 06:22:40

I tryed to compile smart but i got this error message.

22 C:\Dev-Cpp\public-smart\src\Input.cpp expected init-declarator before '*' token

Wizzup?

2010-10-15 10:10:50

Are you using the Makefile?

tom99

2010-10-15 10:47:48

No, how do i do that ? i never compiled a c++ source with makefile.