Gå til innhold

Anbefalte innlegg

Hei.

 

Ønsker kort og greit å få vite hva jeg bør gjøre for å bruke denne funksjonen i C++. Er tidligere vant med programmering i java, og dersom jeg ikke husker feil, var det nok å importere util-biblioteket for å få tilgang til denne funksjonen.

 

Jeg har søkt på msdn, og de henviser til følgende kode:

 

[B]#using <mscorlib.dll>
using namespace System;
using namespace System::Threading;[/B]

__gc class ApartmentTest
{
public :
   static void ThreadMethod()
   {
       Thread::Sleep(1000);
   }
};

void main()
{
   Thread* newThread = 
       new Thread(new ThreadStart(0, &ApartmentTest::ThreadMethod));
       newThread->ApartmentState = ApartmentState::MTA;

       // The following line is ignored since 
       // ApartmentState can only be set once.
       newThread->ApartmentState = ApartmentState::STA;

       Console::WriteLine(S"ThreadState: {0}, ApartmentState: {1}", 
           __box(newThread->ThreadState)->ToString(),
           __box(newThread->ApartmentState)->ToString());

   newThread->Start();

   // Wait for newThread to start and go to sleep.
   Thread::Sleep(300);
   try
   {
       // This causes an exception since newThread is sleeping.
       newThread->ApartmentState = ApartmentState::STA;
   }
   catch(ThreadStateException* stateException)
   {
       ...
       ...
   }
}

 

Hoverpoenget er at jeg kopierer statementene som jeg har satt i bold, og håper nå naivt at jeg kan bruker sleep-funksjonen. Men når jeg legger til det som jeg boldet i koden ovenfor i min kode (uten å legge til noen sleep-setninger i det hele tatt) , får jeg denne feilmeldingen:

 

Fatal Error C1190

managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

You are using Managed Extensions for C++ constructs and the /clr compiler option, but you did not explicitly include mscorlib.dll.

The following sample generates C1190:

// C1190.cpp

// compile with: /clr

// uncomment the following line to resolve errors

// #using <mscorlib.dll>

__gc class A { // C1190

};

 

int main() {

}

 

Jeg bruker Visual Studio.Net, og ovenstående var feilmeldingen VS ga. Klarer egentlig ikke få noe spesifikt ut av den.

 

Derfor spør jeg konsist og enkelt; hva trenger jeg å gjøre av inkluderinger o.l. for å kunne bruke Thread.sleep i C++ ?

 

Håper på tilbakemelding.

ps. jepp, brukte forumsøkefunksjonen først, men ser ikke ut til at dette emnet har blitt behandlet tidligere.

Lenke til kommentar
Videoannonse
Annonse

Fatal Error C1190

managed targeted code requires '#using <mscorlib.dll>' and '/clr' option

You are using Managed Extensions for C++ constructs and the /clr compiler option, but you did not explicitly include mscorlib.dll.

The following sample generates C1190:

// C1190.cpp

// compile with: /clr

// uncomment the following line to resolve errors

// #using <mscorlib.dll>

Klarere får du det vel ikke..

Du har ikke prøvd lese feilmeldingen da? Noen ganger står det faktisk noe nyttig der! ;)

Lenke til kommentar

Hvis du leser koden jeg skrev inn at jeg skrev, er det faktisk denne linjen som gjør at feilmeldingen oppstår i utgangspunktet.

 

Jada, jeg har nok prøvd å lese den :D

 

Hadde vært hyggelig om noen hadde tatt seg tid til å svare. Henger litt på utviklingen av en viktig modul pga. nettopp dette. Har søkt mye rundt, men overalt står det at det jeg forsøkte å sette i bold i koden må skrives inn. Sitter her og lurer på om det trengs en assembly reference, men er usikker på hva det kan være. Sitter litt fast, så hadde vært kult om noen kunne hjelpe med dette lille problemet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...