December 01, 2024, 10:01:59 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


Aurora update Alpha 3 Rev 6

Started by Ionic Wind Support Team, July 10, 2006, 12:54:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ionic Wind Support Team

The Aurora compiler has just been updated.  To get the update redownload from the link provided when purchasing.

Changes/Additions
-------------------------
- Classmaker updated to reflect current syntax.
- Arrays of typed pointers now supported.
- Automatic include file processing changed to better support future updates.
- Pointers returned from a funciton or method can now be directly dereferenced such as: SomeMethod()->GetValue();
- Alpha modes for sprites were broked. Fixed.
- Bug found in the source generation for a method call. Fixed.
- Typed pointers now allowed as a return type.

Have fun,
Paul.
Ionic Wind Support Team

Ionic Wind Support Team

The demo version has also been updated
Ionic Wind Support Team

Protected

Quote- Pointers returned from a funciton or method can now be directly dereferenced such as: SomeMethod()->GetValue();
- Alpha modes for sprites were broked. Fixed.

Fast ^_^

Parker

What exactly changed with "- Automatic include file processing changed to better support future updates." ? Just curious...

Zen

Hmmm since i have updated to rev6 my custom librarys like CCL etc dont seem to be working, i keep getting things like unknown base class when i go to compile things.

The plugin classes i am working, the actual class definitions and constants etc are all located in a .inc file in the bin directory. I was just wondering if something has changed with the IDE that isnt in the update list.

Lewis

Zen

Ohh yeah i just read parkers post, maybe that is something that is causing my problem :D

Lewis

Ionic Wind Support Team

The compiler no longer includes all .inc in the BIN directory.  Instead it only includes acommon.inc which then brings in all of the other needed official files, in the correct order.

There was a problem with the order of include files on some systems.  I had made an assumption on how Windows was handling file finding and that assumption turned out to be incorrect ;)

So for all third party libraries install your header files in the include directory, where they belong, and have your users insert an include statement when needed.

#include "ccl.inc"

Paul
Ionic Wind Support Team

Zen

ha ha thanks a lot Paul, no wories there, just wondered why it wasnt working lol.

Lewis

Zen

ok i have just put my include file in the includes directory now instead of the bin directory and now i get this...


Compiling...
TestPlugin
Generating Exports

Linking...
Aurora Linker v1.0 Copyright ÂÃ,©2005,2006 Ionic Wind Software
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\DirectXmacros.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\comlib.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\windef.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\winnt.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\winerror.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\winuser.lib
Error: Unable to open file C:\PROGRA~1\Aurora\libs\custom\WinCrypt.obj
Error(s) in linking Plugins\Test1.dll


Yet i am not using any functions as far as i am aware that use those files.

Lewis

Parker

If you have #use statements, the libraries will be included regardless of whether or not you are actually using functions from them. I assume those libraries don't exist, so you should find the include (find in files) that references them and comment them out.

Zen

July 10, 2006, 04:20:15 PM #10 Last Edit: July 10, 2006, 04:33:11 PM by Lewis
yeah but im not using any #use statements. Anyway i've got it sorted now, i uninstalled and re-installed after deleting the whole Aurora directory in my program fiels directory.

I have now put my Plugin.inc file in the includes folder but i am now getting a parser crash in one of my particular files, and from what i can see there doesnt seem to be anything wrong, the file hasnt changed since i updated Aurora.

here is the code from the file which is causing the crash anyway...


#include "Plugin.inc"

/***********************************/
/*** Declare Windows API Imports ***/
/***********************************/

declare import,LoadLibraryA(string *lpFileName),unsigned int;
declare import,GetProcAddress(unsigned int hMoudule,string *lpProcName),unsigned int;
declare import,FreeLibrary(unsigned int hModule),int;

/****************************************/
/*** Class Method To Load All Plugins ***/
/****************************************/

CPluginManager :: LoadPlugins(string strPluginDir,string strPluginExt),int {

declare *PluginInitializer(CPluginManager *Manager);

int Directory;
int Attributes;
string Filename;
int PluginCount = 0;

Directory = FindOpen(strPluginDir + "\\*." + strPluginExt);

if(Directory) {

do {

Filename = FindNext(Directory,Attributes);

if(Attributes & 0x10) {

/******************************/
/*** Subdirectory Searching ***/
/***  Not Yet Implemented   ***/
/******************************/

} else {

if(Filename <> "") {

/********************************/
/*** Try And Load The Library ***/
/********************************/

hModule = LoadLibraryA(strPluginDir + "\\" + Filename);

if(hModule <> null) {

/****************************************/
/*** Find The Function In The Library ***/
/****************************************/

hProc = GetProcAddress(hModule,"InitCCLPlugin");

if(hProc <> null) {

// Loaded OK

PluginInitializer = hProc;

PluginInitializer(this);

m_PluginHandles.Add(hModule);

PluginCount++;

} else {

MessageBox(0,"The Following Plugin Is Not A Valid CCL Designed Plugin\n\n" + Filename,"Plugin Error");
FreeLibrary(hModule);

}

} else {

MessageBox(0,"The Following Plugin Failed To Load\n\n" + Filename,"Cant Load Plugin");

}

}

}

} until Filename = "";
   
FindClose(Directory);

} else {

PluginCount = -1;

}

return PluginCount;

}


EDIT: Ok the problem was that the above method was not in the included class definition file. I have sorted the problem on my end, although there is still the issue of it not reporting the error rather than crashing.

Lewis

Parker

July 11, 2006, 12:15:03 PM #11 Last Edit: July 11, 2006, 12:17:25 PM by Parker
The compiler crashes? What does the plugin.inc file contain? And can you isolate the crash to a certain area? A #print directive would be really nice so you could put "checkpoints" and you could tell for sure where it crashes. As it is, I usually just put a few random symbols and try to get it to report an error. When you get past the crashing point, it won't report an error on the symbols and will crash instead. Then you know where the problem is.

Zen

I think it was just because i had to reconstruct the Plugin.inc file, and i forgot to put the method from the above code in the class definition, and it was causing it to crash.

Lewis

Ionic Wind Support Team

Not to worry.  As usual I will look into it.
Ionic Wind Support Team

Zen

Okey dokey Paul. I just thought i would mention it as these crashes are now very few and far between.

Lewis