How to create a windows pluggable primitive?

Arjen van Elteren ak.elteren at quicknet.nl
Sat Jun 24 13:46:00 UTC 2000


Hi Stefan

I would set the module name to "TestPlugin", not "TestPlugin 24 ...".
It works for me on linux after this change.

Arjen


On Sat, 24 Jun 2000, Stefan Matthias Aust wrote:

> Hi!
> 
> I've trouble to create a named pluggable primitive DLL. I tried to figure 
> out what to do from the sources (mostly Andrew's pdf document and the 
> FlippyArray2 code) but nothing works.  I don't know what goes wrong.  I'm 
> using Windows 98.
> 
> Here's my code. I use VC++ 5 to compile a DLL (non-MFC DLL project) which 
> seems to work.
> 
> ----------TestPlugin.c----------
> #include "sqVirtualMachine.h"
> 
> #define EXPORT __declspec(dllexport)
> 
> static struct VirtualMachine *VM;
> 
> EXPORT
> char *getModuleName(void) {
> 	return "TestPlugin 24 Juni 2000";
> }
> 
> EXPORT
> int setInterpreter(struct VirtualMachine *interpreterProxy) {
> 	VM = interpreterProxy;
> 	return 1;
> }
> 
> EXPORT
> void test(void) {
> 	int test = VM->stackIntegerValue(0);
> 	VM->popthenPush(1, VM->integerObjectOf(-test));
> }
> ----------End TestPlugin.c----------
> 
> I use Squeak 2.8 (the version Andreas provided, I've no VM source and 
> didn'T rebuilt that VM) and the following method to test my primitive
> 
> test: anInteger
>    "TestPlugin new test: 42"
> 
>    <primitive: 'test' module: 'TestPlugin'>
>    ^ nil
> 
> and always get "nil", not "-42" as answer.  When I use the FFI to call each 
> function, it works.  The first function answers the string, the second 1 
> and I can also call "test".  I added a
> 
>    MessageBox(NULL, "test", "TestPlugin", MB_OK);
> 
> to get some feedback.  It seems that while getModuleName is correctly 
> called, it doesn't find the other functions.
> 
> What goes wrong?  Where can I find better/more recent 
> documentation?  Please help!
> 
> 
> PS: Is there a method to unload a DLL?  Now I've always have to restart 
> Squeak if I what to replace my DLL.
> 
> 
> bye
> --
> Stefan Matthias Aust  //  Bevor wir fallen, fallen wir lieber auf
> 





More information about the Squeak-dev mailing list