Actually , I tried a much cut down version of the plugin with just the
offending class left in, and created a test RB app to try out the plugin.
This got rid of the previously mentioned assert errors but instead I get
"Compilation of "myRBapp" failed: A file system error occurred (#101) for
"Frameworks". If the application already exists please make sure that it is
not currently runing; otherwise please make sure that the destination
directory is writable".
Removing the Byref makes no difference, I still get the same error message:
Here is the RB code calling a shared method on the plugin class "Marks"
dim pmarks as Marks
dim err as integer = Marks.CreateInstance(pmarks)
If I comment out the line with CreateInstance() the test app builds fine.
Here is the C++ code:
//********** Marks::CreateInstance() ***************************
static int RB_Marks_CreateInstance( void* unused,REALobject& pMarks)
{
pCMarks = REALnewInstance( MarksRBRef );
ClassData(RB_Marks, pMarks, RB_Marks_Data, data );
MarksIf* pMarks;
int err = Marks::CreateInstance( pMarks );
data->iClass = ( Marks*) pMarks;
}
//********** Marks Shared Methods Structure Definition
***************************
REALmethodDefinition RB_Marks_RBSharedMethods[] = {
{(REALproc) RB_Marks_CreateInstance, REALnoImplementation,
"CreateInstance( pMarks As Marks ) As Integer" ,REALconsoleSafe },
{(REALproc) RB_Marks_DestroyInstance, REALnoImplementation,
"DestroyInstance(pMarks As Marks ) As Integer",REALconsoleSafe },
};
//********** Marks REALclass Definition ***************************
REALclassDefinition RB_Marks = {
kCurrentREALControlVersion,
"Marks",
nil, // superclass
sizeof( struct RB_Marks_Data), // data struct size
0, // reserved
(REALproc) RB_Marks_Initializer, //initializer
(REALproc) RB_Marks_Finalizer, //deinitializer
NULL, // property list
0, // property count
RB_Marks_RBMethods,
sizeof( RB_Marks_RBMethods) / sizeof(REALmethodDefinition), // method
count
NULL, // events
0, // event count (how many events)
NULL, // event instances
0, // event instance count
NULL, // interfaces
NULL, // obsolete1
NULL, // obsolete2
NULL, // Constants
0, // Constantcount
REALconsoleSafe, // mFlags
NULL, // sharedProperties
0, // sharedPropertyCount
RB_Marks_RBSharedMethods, // shared method struct
sizeof( RB_Marks_RBSharedMethods) / sizeof(REALmethodDefinition),
// property count
};
On 22/12/07 00:27, "Alfred Van Hoek" <[EMAIL PROTECTED]> wrote:
>
> On Dec 21, 2007, at 6:48 PM, Daniel Stenning wrote:
>
>> Later I may try removing the byref - even though it totally
>> invalidates what
>> im trying to do.
>>
>> Is no one out there doing this already ?
>
>
> Every new functionality can be buggy, and given that a call into the
> shared method declaration leads to the error, you would want to
> experiment. It does not matter whether or not it would defy the
> functionality, you just need to track the bug, no matter what.
> Declare a simple method, no return value no byref and link it to a
> dummy REALproc, test and go from there to see what syntax is allowed
> and then report.
>
>
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives:
> <http://support.realsoftware.com/listarchives/lists.html>
>
Cheers,
Dan
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>