Tôi tưởng đây là code của C#?
Có đoạn mã VC++ hết sức đơn giản như sau:
private: System::Void combo1_SelectedIndexChanged(
System::Object * sender, System::EventArgs * e)
{
if (sender == combo1)
{
String* ps = String::Concat(S"New index is ",
__box(combo1->SelectedIndex)->ToString());
MessageBox::Show(ps, S"Index Change");
}
}
Đoạn này lấy index của một comboBox chuyển nó sang kiểu String. Đoạn mã này áp dụng với VS2003 tốt, nhưng với VS2005 thì nó báo là phải thêm /clr:oldSyntax. Khi mình chuyển sang như yêu cầu của nó thì xuất hiện nhiều lỗi lắm.
Mình muốn hỏi là có cách nào box một đối tượng kiểu value sang reference như hàm __box() này vẫn làm hay không vậy ? Mình không muốn chuyển sang oldSyntax như chương trình yêu cầu. Bộ sang VS2005 thì cú pháp VC++ có thay đổi gì hả mấy bạn . Mình đang học VC++, không nhìu kinh nghiệm lắm, rất mong được giúp đỡ. Cám ơn nhìu.
Tôi tưởng đây là code của C#?
không phải đâu. cú pháp của manage C++ á. Và mình mới phát hiện thêm điều là manage C++ trong VS2k5 đã khác nhìu lắm so với nó trong bộ VS2k3. Vừa dễ vừa gọn nên rất dễ nhớ, lại giống giống cú pháp C#. Và mình đã giải quyết được vấn đề.
Cách giải quyết của mình không hay lắm, nhưng giải quyết được, như sau :
....
int^ index = comboBox1->SelectedIndex;
MessageBox::Show("Ban da chon muc thu: "+ index->ToString(), "Index Change");
...
Cám ơn đã quan tâm nha.
Đã được chỉnh sửa lần cuối bởi lychailon : 13-01-2007 lúc 11:16 PM.
OK. Tôi chưa dùng cái Manage C++ này bao giờ, mặc dù có nghe nói đến.