2012-01-19 31 views
8

Tôi muốn viết một cái gì đó như DaemonTools: một phần mềm trình bày chính nó với hệ thống như một thiết bị thực (DVD-ROM trong ví dụ trước) nhưng nó đọc dữ liệu từ một tập tin thay thế. Yêu cầu của tôi không giới hạn ở DVD-ROM. Mục tiêu đầu tiên là một phím điều khiển/gamepad cho Windows.Điểm bắt đầu để mã hóa thiết bị ảo

Tôi là nhà phát triển web, vì vậy tôi không biết từ đâu tôi có thể bắt đầu dự án như vậy. Tôi tin rằng nó sẽ phải được viết bằng C/C++, nhưng khác hơn thế, tôi không có đầu mối bắt đầu từ đâu.

Có ai đã thử một cái gì đó như thế này và có thể cho tôi một số mẹo khởi đầu không?

+0

Bạn sẽ sử dụng gamepad theo cách này, chắc chắn khi bạn đã tải ứng dụng trò chơi, v.v. bạn sẽ không còn tập trung hoặc điều khiển tập trung với gamepad ảo (như tôi hiểu) nữa không? –

+0

Điều gì xảy ra nếu bạn điều khiển "gamepad" từ một máy khác thông qua lan/internet/TCP? –

+0

Về lý thuyết nên có thể, tuy nhiên lý do chính để phát triển giải pháp ảo là tiết kiệm chi phí phần cứng của sản phẩm v.v. Tuy nhiên, trong trường hợp này bạn sẽ không cần phải mua một gamepad nhưng sẽ cần mua một máy tính khác để chạy nếu bạn chưa có. Tôi đánh giá cao đây chỉ là một dự án nhưng đáng để suy nghĩ về cách thực hiện sẽ hoạt động trước khi dành hàng giờ mã hóa nó:) –

Trả lời

8

Hầu hết các trình điều khiển được viết bằng C hoặc C++, vì vậy nếu bạn không biết những ngôn ngữ đó một cách hợp lý, bạn sẽ muốn làm quen với chúng trước khi bắt đầu. Lập trình Windows sử dụng rất nhiều phím tắt thú vị có thể gây nhầm lẫn cho người mới bắt đầu - ví dụ: PVOIDs (typedef void* PVOID) và LPVOID (typedef void* far LPVOD;). Bạn sẽ cần phải hài lòng với các con trỏ như các khái niệm cũng như các cấu trúc vì bạn sẽ sử dụng rất nhiều con trỏ. Tôi muốn đề nghị viết một ứng dụng win32 thực sự đơn giản như là một bài tập trong việc nắm bắt với phong cách Windows làm C/C++.

Cổng tiếp theo của cuộc gọi sau đó là điều hướng Windows Driver Kit - cụ thể, bạn sẽ cần nó để tạo trình điều khiển cho Windows. Ở giai đoạn này khả năng tư vấn của tôi thực sự phụ thuộc vào những gì bạn đang làm và phần cứng bạn có sẵn, hoặc có hay không bạn đang thực sự sử dụng phần cứng. Bạn sẽ cần phải biết cách điều khiển phần cứng của mình và từ đó bạn sẽ cần phải chọn một cách thích hợp để viết trình điều khiển - có một số loại trình điều khiển khác nhau tùy thuộc vào những gì bạn cần đạt được và có thể bạn có thể cắm vào một trong số này.

Bộ điều khiển cửa sổ chứa khá nhiều mẫu, kể cả trình điều khiển thực hiện máy nướng bánh mỳ ảo. Chúng sẽ cung cấp cho bạn các điểm bắt đầu.

Tôi thực sự khuyên bạn nên thử nghiệm điều này trong máy ảo. Nếu trình điều khiển của bạn xây dựng thành công, nhưng gây ra lỗi thời gian chạy, kết quả cũng có thể làm hỏng hoàn toàn cửa sổ nếu bạn đang ở chế độ hạt nhân. Do đó, bạn sẽ tiết kiệm cho mình một số cơn đau bằng cách có thể hoàn nguyên máy ảo nếu bạn làm hỏng nó, cũng như không phải chờ hệ thống khởi động lại. Nó cũng sẽ làm cho việc gỡ lỗi dễ dàng hơn vì các cáp nối tiếp ảo có thể được sử dụng.


Đây thực sự là một bước tiến lớn, vì vậy trước khi bắt đầu, tôi sẽ nghiên cứu kỹ hơn về Windows. khung điều khiển, sau đó cuối cùng và chỉ khi bạn cần, nhìn vào các công cụ mức hạt nhân.

+0

+1 rất nhiều câu trả lời cho các câu hỏi như thế này là "không". Mặc dù làm điều này có thể là không thể chấp nhận được, câu trả lời của bạn rất thông tin. –

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