Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Calling DialogBox() from within a DLL

Posted on 1998-11-23
3
Medium Priority
?
244 Views
Last Modified: 2013-12-03
I am trying to call DialogBox() from within a DLL, every time I do, it gives me a GPF in KRNL386.  If I do the EXACT same DialogBox() call in an EXE, it works fine.  I am using Borland C++ 4.52 and the documentation hints that I should NOT use the MakeProcInstance() call if it is being used in a DLL.  I have tried removing the MakeProcInstance() calls but it still GPF's.  Another kicker is this MUST be written using 16-bit API calls  :(

Any idea's on how to correctly call the DialogBox() function from within a DLL? (the DLL has no window of it's own).
0
Comment
Question by:marlow
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 8

Accepted Solution

by:
Answers2000 earned 400 total points
ID: 1416282
Do not call DialogBox from LibMain under Win16.  It will work if you call it from a custom procedure (DLL entry point)

Code to do dialog boxes in DLLs should be identical IIRC

Incidentally make sure the host app has a message loop.
0
 

Author Comment

by:marlow
ID: 1416283
Need more info...

The DialogBox() function is called from within one of my procedures in my DLL, not from LibMain.  What did you say the code to do dialog boxes in DLL's are identical to?  I did not understand...

Yes, host app has message loop...
0
 
LVL 8

Expert Comment

by:Answers2000
ID: 1416284
Yes the code is identical for the actual dialog box itself, to code for a dialog in an EXE.  This is actual a good way to debug/develop a dialog - as you simply write the code in an EXE and then cut/paste it to your DLL.

The DLL will rely on the main app's message loop

Also with DLL version make sure you use the correct hInst where the resource lies (presumably that of the DLL itself).  

0

Featured Post

Get your Conversational Ransomware Defense e‑book

This e-book gives you an insight into the ransomware threat and reviews the fundamentals of top-notch ransomware preparedness and recovery. To help you protect yourself and your organization. The initial infection may be inevitable, so the best protection is to be fully prepared.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

After several hours of googling I could not gather any information on this topic. There are several ways of controlling the USB port connected to any storage device. The best example of that is by changing the registry value of "HKEY_LOCAL_MACHINE\S…
A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question