2008-09-22 15 views
5

में गणनाओं को परिवर्तित करने के साथ एक समस्या मेरे पास एक असेंबली है, जो सी ++ \ सीएलआई में लिखी गई है, जो नेट द्वारा प्रदान की गई कुछ गणनाओं का उपयोग करती है। यह गुण इस तरह है:सी ++ सीएलआई

property System::ServiceProcess::ServiceControllerStatus^Status 
{ 
    ServiceControllerStatus^get() 
    { 
     return (ServiceControllerStatus)_status->dwCurrentState; 
    } 
}  

यह ठीक काम करता है, लेकिन जब मैं अपने सी # कोड से विधानसभा का उपयोग करें, इस संपत्ति के प्रकार

System.Enum 

है और मैं करना है प्रकार के कलाकारों

if ((ServiceControllerStatus)currentService.Status == ServiceControllerStatus.Running) 
    //do smth 

प्रश्न सरल है: ऐसा क्यों है, और इसे कैसे ठीक किया जाए?

उत्तर

5

सी ++/सीएलआई ^ मानक सी ++ में समान * की तरह है। चूंकि गणना मूल्य प्रकार ^ शामिल नहीं किया जाना चाहिए अन्यथा आप उन्हें सिस्टम के रूप में देखेंगे। ईनम

^निकालें और आप सी # पक्ष पर सही गणना देखेंगे।

property System::ServiceProcess::ServiceControllerStatus Status 
{ 
    System::ServiceProcess::ServiceControllerStatus get() 
    { 
     return (System::ServiceProcess::ServiceControllerStatus)_status->dwCurrentState; 
    } 
} 
3

मुझे लगता है कि enums का उपयोग नहीं करते^- संपत्ति घोषणा से इसे हटाने का प्रयास करें और प्राप्त करें()।

संबंधित मुद्दे