Hallo,
Ich versuche zu lernen wie man den FX2 unter C anspricht. Leider
funktionieren schon die einfachsten Sachen nicht. Ich will einfach nur
ein Device öffnen oder die Anzahl der Devices abfragen. Beides schlägt
Fehl.
Der FX2 ist im Gerätemanager vorhanden. Auch über das Tool von Cypress
lässt er sich ansprechen. Der Code funktioniert nicht egal ob ich keine
firmware auf den FX2 lade oder eine beliebige funktionierende Firmware
lade. DeviceCount liefert immer 0 dementsprechend kann auch kein device
geöffnet werden.
1 | #include "stdafx.h"
|
2 | #include <stdio.h>
|
3 |
|
4 | #include <windows.h>
|
5 | #include "cyapi.h"
|
6 |
|
7 | int main(int argc, char* argv[])
|
8 | {
|
9 | char achBuffer[100];
|
10 | int i;
|
11 |
|
12 | CCyUSBDevice *USBDevice = new CCyUSBDevice();
|
13 |
|
14 | // Attempt to open device #0
|
15 |
|
16 | i=USBDevice->DeviceCount();
|
17 |
|
18 | sprintf(achBuffer, "Anzahl Devices: %d", i);
|
19 | MessageBox(NULL, achBuffer, "Ausgabe", MB_OK);
|
20 |
|
21 |
|
22 | if (USBDevice->DeviceCount() && !USBDevice->Open(0)) {
|
23 |
|
24 | USBDevice->Reset();
|
25 | USBDevice->Open(0);
|
26 | }
|
27 |
|
28 | if (! USBDevice->IsOpen()) {
|
29 | printf( "Fail\n");
|
30 | } else {
|
31 | printf("open OK\n");
|
32 | }
|
33 |
|
34 |
|
35 | return 0;
|
36 | }
|
Da ich erst mal nur Konsolen Programme schreibe habe ich mal das
erzeugen des Objektes durch
1 | GUID guid;// = IIDFromString("{0C1D1055-0ACF-4800-8E79-DB09641464CF}");
|
2 | IIDFromString(OLESTR("{0C1D1055-0ACF-4800-8E79-DB09641464CF}"),&guid);
|
3 | CCyUSBDevice *USBDevice = new CCyUSBDevice(NULL, guid); // Does not register for PnP events
|
ersetzt.
Seit dem erhalte ich beim Compilieren die Warnung:
LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other
libs; use /NODEFAULTLIB:library
Komisch finde ich auch irgendwie dass die Funktion StringToGuid aus der
Doku zur lib:
UID guid = StringToGUID("{BE18AA60-7F6A-11d4-97DD-00010229B959}");
nicht funktioniert. Sie taucht in der ganzen Doku nur in dem einen
Beispiel auf und ist auch Leuten die sich deutlich besser mit C
auskennen als ich nicht bekannt.
Was läuft bei mir Falsch??
Viele Grüße,
Christian