Problems with the K8055 on Vista

I have the following system:

  1. Microsoft Vista

  2. Microsoft Visual Studio 2005.

  3. Dell Computer.

  4. K8055

  5. K8055 VC++ 2005 download from Velleman

  6. I wrote a small test application using Win32 Windows (not Console) to turn on the Card Digital I/O. It’s as follows:

    long int lngReturn;
    long int Address;
    long int Data;

    Address = 0L;
    Data = 7L;
    lngReturn = OpenDevice(Address);
    SetAllDigital();
    WriteAllDigital(Data);

  7. I compiled and linked it successfully with the K8055_C.h and K8055_C.lib file. I put the K8055D_C.DLL in the C:\Windows\System32 directory.

  8. I plugged in the K8055 in my USB. The Device Manager under Human Interface Devices shows the USB device which the K8055 is connected as Manufacture ID 0x10CF; PID as 0x5500 and Rev 0.

  9. The K8055 is in good working order because I tested it on my Mac.

  10. When I ran the small demo, it did not set any of the I/O. I ran it in Debug and stepped through the code. I also ran it without the Debugger.

  11. The return code from OpenDevice was 0. If I change the pin setting on the card to 1 (0x5501), it still showed as 0. The manual says that it should be -1 if device not found

What am I doing wrong and how do I fix it?

Regards, The Turtle

The old versions 2.0.0.1 of K8055D.DLL and K8055D_C.DLL are not Vista compatible.
Here you can download new DLL version together with some example software - also Visual C++ example: velleman.eu/support/download … 8055&type=

Please download: Complete SDK Pack (Rev 4.0)
There is no .LIB file for the Microsoft C++.
You have to use run-time dynamic linking: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686944(v=vs.85).aspx
You can use the Platform Invocation Services, PInvoke, that enables to call C-style functions in DLLs. See K8055DemoVC_2008 how to use the DllImport Attribute. For more info: “Calling Native Functions from Managed Code”: http://msdn.microsoft.com/en-us/library/ms235282(v=vs.110).aspx
Alternatively you can use the GetProcAddress function to retrieve the address of an exported function from the DLL.
Please see the demo in the subfolder K8055DemoDevC.

[quote]If I change the pin setting on the card to 1 (0x5501), it still showed as 0. [/quote]The new DLL should fix also this problem.

  • The USB cable should be disconnected when the settings are changed.