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
|