[Oberon] loading of dll procedures - unknown EIP
Patrick.Hunziker at unibas.ch
Patrick.Hunziker at unibas.ch
Tue Sep 3 10:31:58 CEST 2002
Patrick.Hunziker at unibas.ch wrote:
I am calling a windows dll ( ODBC32.dll ) from a Module ODBC (originally
derived from V4).
Loading the dll and its procedures appears to work, and the procedure variable
address of some dll procedure is, according to "System.State ODBC":
...
SQLDrivers = Unknown EIP = 1F819C05H
...
What is the 'unknown EIP' when an address is found anyway ?
It appears that the system has found ap procedure at the mentioned address.
However, when I actually call ODBC.SQLDrivers, I get the error:
------------------
TRAP access violation in thread Oberon.Loop
Unknown EIP = 77F821E1H EBP = 02EFF280H
SQLBase.EnumDrivers PC = 3804
attribActLen = 0
attributes = ""
cb = TestSQL.Enum PC = 254
cont = TRUE
direction = 2
driver = ""
driverActLen = 0
ret = 0
TestSQL.Do PC = 403
Interestingly, the unknown EIP and the procedure address, when added, give
always 80000000H .
Where does this mean, and how could this be remedied ?
BTW: did anybody succeed in working with ODBC with ETH Oberon, and what are the
hints to succeed ? Any most simple example code ?
-----------------------
Pieter wrote:
Unknown EIP means the EIP address could not be associated with any
Oberon module and procedure. Normally the display would be something like:
SQLDrivers = Module.Procedure PC = 1234
Is this a procedure variable pointing to an external C procedure or
to an Oberon procedure?
-- Pieter
-----------------------
This is after
a) loading an external dll (successful) written in an unknown language,
probably C
b) assigning dll exported procedures to procedures variable defined according
to the structure of the exported variable.
the assignement of procedure variables seems to work, otherwise the procedure
variable is usually =NIL.
The fact that calling the procedure variable fails with an EIP in the trap that
is different from the EIP loaded (but complementary to 80000000H ) seems
strange.
-------------------------------------------------
This mail sent through IMP: igor.urz.unibas.ch
More information about the Oberon
mailing list