Kniznica problem

Programovacie jazyky, rady, poradňa...
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Kniznica problem

Príspevok od používateľa Kamik »

Zdravím program ma merať analógový, digitálny - vstup ,vedieť regulovať vystúp
Tvorím ho cez Visual Studio 2008 Express Edition som uplny začiatočník c C++ ale mam po ruke zdrojový kód s podobného programu
Problém je v tom že keď pridám knižnicu driver.h (ovladac karty advantech PCI 1711) podla návodu kompilátor vyhodí chybu

Kód: Vybrať všetko

driver.h error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe
Vobec netušim v čom je chyba mohol by mi stým niekto pomoct ?
Ďakujem
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Kniznica problem

Príspevok od používateľa johny3212 »

nemam ziadne skusenosti s driver.h, ale to je iba hlavickovy subor. Ak ta kniznica nie je sucast kompilatora, potrebujes vo visualku nahrat tu kniznicu a ta je asi niekde v *.dll.
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Re: Kniznica problem

Príspevok od používateľa Kamik »

johny3212 napísal:nemam ziadne skusenosti s driver.h, ale to je iba hlavickovy subor. Ak ta kniznica nie je sucast kompilatora, potrebujes vo visualku nahrat tu kniznicu a ta je asi niekde v *.dll.
V navode je ze treba nahrat Driver.h do header files ,adsapi32.lib do resource files a do source files vytvorit nieco.app a vlozit tam zdrojak

Kód: Vybrať všetko

#include  <windows.h>

#include <windef.h> 

#include <stdio.h> 

#include <conio.h>

#define WIN_CONSOLE 

#include "...\...\...\include\driver.h" 

/****************************** 

* Local function declaration * 

******************************/ 

void ErrorHandler( DWORD dwErrCde ); 

void ErrorStop( long*, DWORD ); 

void main() 

{ 
   DWORD dwErrCde; 

   ULONG lDevNum; 

   long lDriverHandle; 

   USHORT usChan; 

   float fVoltage; 

   PT_AIVoltageIn ptAIVoltageIn;  

      PT_AIConfig ptAIConfig;

   //Step 1: Display hardware and software settings for running this example 

   printf( "Before running this example, please\n" ); 

   printf( "use the device installation utility to add the device.\n" ); 

   //Step 2: Input parameters 

   printf( "\nPlease input parameters:" ); 

   printf( "\nDevice Number (check the device installation utility ):"); 

   scanf( "%d", &lDevNum ); 

   printf( "Input Channel:" ); 

   scanf("%d", &usChan ); 

   //Step 3: Open device 

   dwErrCde = DRV_DeviceOpen( lDevNum,&lDriverHandle ); 

   if ( dwErrCde != SUCCESS ) 

   { 
        ErrorHandler( dwErrCde ); 

        printf("Program terminated!\n" ); 

        return ; 
   }   

   //Step 4: Configure input range 

   ptAIConfig.DasChan = usChan; // channel: 0 

   ptAIConfig.DasGain = 0;      // gain code: 0 

   dwErrCde = DRV_AIConfig( lDriverHandle, &ptAIConfig ); 

   if ( dwErrCde != SUCCESS ) 

   { 
       ErrorStop( &lDriverHandle, dwErrCde ); 

       return;
   } 

   // Step 5: Read one data 

   ptAIVoltageIn.chan = usChan; // input channel 

   ptAIVoltageIn.gain = 0;      // gain code: refer to 

   // manual for range 

   ptAIVoltageIn.TrigMode = 0;   // 0: internal trigger,1: external trigger 

   ptAIVoltageIn.voltage = &fVoltage; // Voltage retrieved 

   dwErrCde = DRV_AIVoltageIn( lDriverHandle, &ptAIVoltageIn ); 

   if ( dwErrCde != SUCCESS ) 

   { 
       ErrorStop( &lDriverHandle, dwErrCde ); 

       return; 
   }   
  
   // Step 6: Display reading data 

   printf( "Reading data =%10.6f\n", fVoltage ); 

   // Step 7: Close device 

   dwErrCde = DRV_DeviceClose( &lDriverHandle ); 

   if ( dwErrCde!=SUCCESS ) 

   { 
       ErrorStop(&lDriverHandle, dwErrCde ); 

       return; 
   } 

}     //main 

/********************************************************************** 

* Function: ErrorHandler 

* Show the error message for the corresponding error code 

* input: dwErrCde, IN, Error code 

* return: none 

**********************************************************************/ 

void ErrorHandler ( DWORD dwErrCde ) 

{ 
    char szErrMsg[ 180 ]; 

    DRV_GetErrorMessage( dwErrCde, szErrMsg ); 

    printf( "\n Error( %d ): %s\n", dwErrCde& 0xffff, szErrMsg ); 

}   //ErrorHandler   

/********************************************************************** 

* Function: ErrorStop 

* Release all resource and terminate program if error occurs 

* Paramaters: pDrvHandle, IN/OUT, pointer to Driver handle 

* dwErrCde, IN, Error code. 

* return: none 

*********************************************************************/ 

void ErrorStop( long *pDrvHandle, DWORD dwErrCde ) 

{ 
     //Error message 

     ErrorHandler( dwErrCde ); 

     printf( "Program terminated!\n" ); 

     //Close device 

     DRV_DeviceClose( pDrvHandle ); 

     exit( 0 ); 

}    //ErrorStop
Nic ine sa tam nepise :(
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Re: Kniznica problem

Príspevok od používateľa chrono »

Nepoužívam Visual Studio 2008 Express Edition a nemám ani v pláne čítať návod, k tomu programu, ale podľa tej chyby je zrejmé, že pri kompilovaní používaš také parametre, ktoré neumožňujú využívať ľubovolné knižnice (v návode sa určite dočítaš, na čo sa používa /clr:pure a /clr:safe).

Keďže ten program nepoužívam, tak netuším, prečo ti tam tie parametre dalo, ale predpokladám, že si vybral nesprávny typ projektu, takže sa skús pozrieť, či tam nie je niečo normálnejšie (také parametre by ma neprekvapili, ak by si to robil napr. pre WP7).
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Re: Kniznica problem

Príspevok od používateľa Kamik »

chrono napísal:Nepoužívam Visual Studio 2008 Express Edition a nemám ani v pláne čítať návod, k tomu programu, ale podľa tej chyby je zrejmé, že pri kompilovaní používaš také parametre, ktoré neumožňujú využívať ľubovolné knižnice (v návode sa určite dočítaš, na čo sa používa /clr:pure a /clr:safe).

Keďže ten program nepoužívam, tak netuším, prečo ti tam tie parametre dalo, ale predpokladám, že si vybral nesprávny typ projektu, takže sa skús pozrieť, či tam nie je niečo normálnejšie (také parametre by ma neprekvapili, ak by si to robil napr. pre WP7).

v návode nič o /clr:pure a /clr:safe nieje neviem si stým dat rady projekt musi byt urcite vytvoreny ako Windows forms application
johny3212
Star
Star
Používateľov profilový obrázok
Príspevky: 532
Registrovaný: 17 feb 2008, 19:56
Bydlisko: Terchova
Kontaktovať používateľa:

Re: Kniznica problem

Príspevok od používateľa johny3212 »

tiez ti to neviem skontrolovat, lebo robim v linuxoch, ale uz len to volanie hlavicky je divoke #include "...\...\...\include\driver.h" , neper tam hned tie zdrojaky, najskor si vytvor prazdny projekt a vloz do neho iba ten hlavickovy #include "driver.h" bez zdrojakov a skus to skompilovat, traba ist postupne, nie vsetko na raz. Niekde v MVS si nastav cestu k tomu driver.h, aby si tam nemusel davat tie spetne cesty ...\...\ . A otvori ti deklaraciu hlavicky, ked das Open Declaration na driver.h?

toto bol hned prvy link v google, ked som tam dal tvoju chybu, mozno ti to pomoze :).
http://www.developer.com/net/cplus/arti ... lation.htm
Kamik
Light Expert
Light Expert
Príspevky: 65
Registrovaný: 28 jan 2008, 16:30

Re: Kniznica problem

Príspevok od používateľa Kamik »

johny3212 napísal:tiez ti to neviem skontrolovat, lebo robim v linuxoch, ale uz len to volanie hlavicky je divoke #include "...\...\...\include\driver.h" , neper tam hned tie zdrojaky, najskor si vytvor prazdny projekt a vloz do neho iba ten hlavickovy #include "driver.h" bez zdrojakov a skus to skompilovat, traba ist postupne, nie vsetko na raz. Niekde v MVS si nastav cestu k tomu driver.h, aby si tam nemusel davat tie spetne cesty ...\...\ . A otvori ti deklaraciu hlavicky, ked das Open Declaration na driver.h?

toto bol hned prvy link v google, ked som tam dal tvoju chybu, mozno ti to pomoze :).
http://www.developer.com/net/cplus/arti ... lation.htm
No uz som to nasiel aj ja ale dik :) pomohlo to program už fici
Napísať odpoveď