Join The Works program to have access to the most current content, and to be able to ask questions and get answers from Revelation staff and the Revelation community

At 06 MAR 2002 06:30:26PM Jim Vaughan wrote:

I just wrote some code to delete all my old 16 bit DLL function records as created by DECLARE_FCNS.

I did this by writing a quick piece of code that looked through my old SYSPROCS DLL_??? definition files and read each function name in turn and deleted all the

SYSREPOS, "SYSPROG*STPROCEXE":FUNCTION SYSOBJ,"$":FUNCTION SYSREPOS, "APP_NAME*STPROCEXE":FUNCTION

SYSOBJ,"$":FUNCTION:"*APP_NAME" THEN NULL

I did at both the app and global level as you can see.

Seemed to work great.

I then copied the SYSPROCS DLL_GDI data I had to SYSPROCS DLL_GDI32.

Made a few changes so it looks like this (this may not have all the correct parameters I still need to check them all)

GDI32

INT STDCALL GetDeviceCaps(HANDLE,INT)

ULONG PASCAL Rectangle(ULONG, ULONG, ULONG, ULONG, ULONG)

ULONG PASCAL CreateSolidBrush(ULONG)

ULONG PASCAL CreateHatchBrush(ULONG,ULONG)

ULONG PASCAL CreatePen(ULONG, ULONG,ULONG)

ULONG PASCAL SelectObject(ULONG, ULONG)

ULONG PASCAL DeleteObject(ULONG)

ULONG PASCAL LineTo(ULONG, ULONG, ULONG)

ULONG PASCAL TextOut(ULONG, ULONG, ULONG,LPCHAR,ULONG)

ULONG PASCAL SetTextColor(ULONG, ULONG)

ULONG PASCAL SetBkColor(ULONG, ULONG)

ULONG PASCAL CreateRectRgn(ULONG, ULONG, ULONG, ULONG)

ULONG PASCAL MoveTo(ULONG, ULONG, ULONG)

ULONG PASCAL CreateFont(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,LPCHAR)

ULONG PASCAL SetBkMode(ULONG,ULONG)

ULONG PASCAL CreateCompatibleDC(ULONG)

ULONG PASCAL BitBlt(ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG, ULONG)

ULONG PASCAL DeleteDC(ULONG)

ULONG PASCAL CreateCompatibleBitMap(HANDLE,ULONG,ULONG)

And then ran declare_fcns against this new record.

When my code now calls CreateCompatibleBitMap I get an error saying:

Function CreateCompatibleBitMap does not exist in dynamic length library GDI32.

Any ideas?


At 06 MAR 2002 07:52PM j Vaughan wrote:

CreateCompatibleBitmap is in GCI32.DLL see below, why might OI not be finding it?

Exports from GDI32.dll

607 exported name(s), 607 export addresse(s).  Ordinal base is 1.
Sorted by Name:
  RVA      Ord. Hint Name
  1. ——- —- —- —-

…..

  00014CE9   44 002B CreateColorSpaceW
  00002D81   45 002C CreateCompatibleBitmap

At 06 MAR 2002 09:01PM Oystein Reigem wrote:

Jim,

Perhaps your system still thinks CreateCompatibleBitmap is 16-bit??? I have a vague suspicion you can get this message if the DLL you use is the wrong version.

The prototype for the CreateCompatibleBitmap function is in a SYSPROCS DLL function record which is common to all the GDI functions, so I trust you've got rid of that. Or have you got another version somewhere that you didn't delete??? I don't think the records must be named DLL_something. If you want to be dead certain do a search through SYSPROCS.

But have you got rid of the SYSREPOS or SYSOBJ records? Perhaps you slipped up on CreateCompatibleBitmap??? I see it's the last one in your list. Might that be significant? I don't know exactly how you went about when you deleted them. It's also the one with the longest name, so it's easier to spell wrong.

- Oystein -


At 06 MAR 2002 09:19PM Pat McNerthney wrote:

It is case-sensitive and you have an upper-case M where there should be a lower-case m.

Pat


At 07 MAR 2002 09:34PM j Vaughan wrote:

Thanks Pat that was it.

View this thread on the Works forum...

  • third_party_content/community/commentary/forums_works/74477221a467825788256b7400812155.txt
  • Last modified: 2023/12/30 11:57
  • by 127.0.0.1