Visual Basic Question
Douglas Taylor
dj.taylor4 at verizon.net
Sat May 2 14:57:54 CDT 2015
On 4/21/2015 4:25 PM, Dave G4UGM wrote:
>> -----Original Message-----
>> From: cctech [mailto:cctech-bounces at classiccmp.org] On Behalf Of geneb
>> Sent: 21 April 2015 18:56
>> To: General Discussion: On-Topic Posts
>> Subject: RE: Visual Basic Question
>>
>> On Tue, 21 Apr 2015, Dave G4UGM wrote:
>>
>>> The phrase "standard Windows 16bit DLLs" means Windows 3.1 DLLs. Such
>>> DLL's no longer work in a modern windows. If they directly access the
>>> hardware then they will not work on any NT based windows such as
>>> Windows/2000, Windows/XP, Vista, or 7, 8 or 9. Nor will they work on
>>> any 64-Bit windows full stop. 64-Bit windows does not support 16-bit
> code.
>>> If you have a Windows/95, 98 or ME environment then the code may work.
>> They should work with 32 bit versions of windows as the 16 bit thunking
> layer is
>> still present. YMMV of course.
> What I said was:-
>
> " If they directly access the hardware then they will not work on any NT
> based windows such as..."
>
> As they are interfacing to external hardware I assume they access the
> hardware directly...
>
An update on this software/hardware adventure:
I have not got a 16 bit capable version of VB4 so I have not started
that yet. The thunking advice is quite relevant since the driver talks
directly to the ISA card.
I am using Visual C++ v1.52 and I am able to write and compile and debug
a short piece of code that calls the 16 bit DLL. There is a conflict in
the calling argument list though,
the manual and the include file Cproto.h say that the directory string
is passed as a 'far pointer', however Visual C++ says it must be a near
pointer. When I run the code
and step thru it using the debugger the first call to acq_open returns a
code integer that indicates one of the passed parameters is wrong, don't
know which one.
I am running under win98se and a companion executable, winvect.exe, is
provided to test the DLL out. It works just fine. I run it from a
MS-DOS window and when it
starts it opens up a window with graphics and plots the data coming from
the spectrometer.
I used a utility, scanbin.exe, to tell me what the exe and dll files
were and it indicates the C++ and winvect.exe are both 'Windows
executables 16 bit'.
The ISA acquisition card uses DMA is this incompatible inside the debugger?
More information about the cctech
mailing list