Menu

BOOL APIENTRY DllEntryPoint?

Help
2010-01-28
2012-09-19
  • Joerg Wunsch

    Joerg Wunsch - 2010-01-28

    Hello,

    I tried porting gpib-tcl to FreeBSD, and basically succeeded, but only

    by #ifdef'ing this function:

    BOOL APIENTRY DllEntryPoint(HINSTANCE hInstance, DWORD reason, LPVOID
    lpCmdLine)

    {

    if (reason == DLL_PROCESS_DETACH)

    GPIBDevice::CloseAllDevices();

    return TRUE;

    }

    out. How would that possibly work on other Posix-style operating

    systems?

    Also, I needed a lot of hacks (like adding /usr/local/include and

    /usr/local/lib to the Makefile) that would normally be better done by

    an automatic system. I'm not a real fan of autoconf/automake, but

    IMHO they would be appropriate here... Same for deciding the Tcl

    version installed.

    Finally, one inconsistency occurred to me in the code:

    GPIBDevice::GetInterfaceSRQ uses TestSRQ() while the remaining stuff

    uses all the ibfoo() functions. Shouldn't this be using iblines()

    instead? (FreeBSD only supports the ibfoo() function interface, it

    doesn't support the multidevice API functions.)

     
  • Ian Dees

    Ian Dees - 2010-01-28

    Hi, Joerg.

    How would that possibly work on other Posix-style operating

    systems?

    As you correctly point out, that function needs to be #ifdef'ed out for non-
    Win32 systems.

    I'm not a real fan of autoconf/automake, but

    IMHO they would be appropriate here...

    I agree; a distant horizon on the to-do list is to try to get the project
    built under CMake.

    GPIBDevice::GetInterfaceSRQ uses TestSRQ() while the remaining stuff

    uses all the ibfoo() functions. Shouldn't this be using iblines()

    instead?

    Probably so. There may have been a reason to use TestSRQ() instead, but I
    suspect it was just a lack of knowledge about iblines(). Is iblines() working
    well on your BSD machine?

    --Ian

     
  • Joerg Wunsch

    Joerg Wunsch - 2010-01-28

    As you correctly point out, that function needs to be #ifdef'ed

    out for non-Win32 systems.

    OK. I've only been surprised since I know this package is already

    distributed as a binary for Linux, how that would have possibly

    worked at all...

    Shouldn't this be using iblines()

    instead?

    Probably so. There may have been a reason to use TestSRQ() instead, but I

    suspect it was just a lack of knowledge about iblines().

    I'll try filing a patch for this then.

    Is iblines() working well on your BSD machine?

    No, it's only implemented as a stub :), but at least, I can get it to compile
    then.

    As I'm also a FreeBSD developer, I could then always go ahead, and fill in

    the stub when needed, but I first have to find an application for SRQs, i.e.

    an instrument that would actually assert SRQ in a meaningful context.

     

Log in to post a comment.