2009-05-11 60 views
5

Tôi cần nhập một số mã ANSI C vào một dự án mà tôi đang làm việc. Vì lý do tôi không muốn đi vào, tôi muốn cấu trúc lại mã thành C# thay vì cố gắng bọc mã gốc. Nó sẽ đưa tôi có lẽ một vài ngày để làm công việc bằng tay, nhưng trước khi tôi bắt đầu, là có một công cụ tự động có thể giúp tôi có được hầu hết các cách có? Tôi là một cheapskate và công việc tôi đang làm là pro bono, vì vậy công cụ miễn phí chỉ xin vui lòng.Có công cụ nào để chuyển mã ANSI C sang C#?

+0

Vui mừng khi thấy bạn thừa nhận bạn là người bán rẻ tiền. ;-) – peSHIr

+0

Tôi thực sự không phải là một cheapskate theo cách riêng của tôi, nhưng tôi đang dành thời gian cho dự án cụ thể đó miễn phí và vì vậy tôi không sẵn sàng chi tiền cho nó. Khi tôi làm công việc được trả lương, tôi cố gắng sử dụng những công cụ tốt nhất mà tôi có thể mua được. –

Trả lời

2

Nếu việc tái cấu trúc thủ công là "chỉ" sẽ mất một vài ngày, điều đó sẽ nhận được phiếu bầu của tôi. Tùy thuộc vào những gì mã C đang làm và làm thế nào nó được viết (con trỏ, thư viện tùy chỉnh, vv) một công cụ chuyển đổi tự động chỉ có thể làm cho một mớ hỗn độn. Và gỡ rối mớ hỗn độn đó có thể là một nhiệm vụ lớn hơn là chỉ chuyển đổi bằng tay.

1

Thiết lập, dọn dẹp, tái cấu trúc và chỉ tạo mã chuyển đổi đơn giản (nếu có ngay cả bộ chuyển đổi) có thể là thứ gì đó ở độ lớn hàng tuần hoặc hàng tháng, vì vậy bạn sẽ được phục vụ tốt hơn để tiếp tục bằng cách viết lại thủ công.

1

Có thử nghiệm CLI Back-End and Front-End cho GCC. Nó đã có khả năng biên dịch một tập con của các chương trình C thành CIL, mã byte mà CLR chạy.

(Trang web làm cho nó có vẻ giống như mã đã được chỉ phát triển trong một vài tháng và sau đó bỏ qua kể từ đó, nhưng nó đã quá hạn; ST Microelectronics đang tiếp tục duy trì và phát triển.)

Bạn không chỉ định lý do tại sao bạn muốn một dịch C - C#, nhưng nếu bạn chỉ muốn nhận C và C# để chơi cùng nhau mà không cần P/Invoke hoặc COM, nó có thể là đủ tốt.

1

Có thể có ý nghĩa khi bắt đầu bằng cách lấy mã hiện có để biên dịch dưới dạng C++ được quản lý hay còn gọi là C++/CLI. Giả sử rằng đã trôi chảy đủ, thì bạn có một nền tảng làm việc, có thể kiểm tra để xây dựng. Di chuyển các tính năng chính vào các lớp riêng của chúng và khi cần, hãy viết lại dưới dạng C# trên đường đi.

Các vấn đề liên quan