Tôi đã tạo một dự án 64bit C++ trong Visual Studio 2010 (trong Windows 7 64bit);Chương trình 64bit vC++ dường như chạy dưới chế độ 32bit
Tôi nghĩ rằng tôi đã chạy một ứng dụng 64bit, và đoạn mã sau trở đúng:
bool is64bit = (sizeof(void*)==8);
nhưng nếu tôi gọi là chức năng IsWow64Process
, nó trở FALSE ...
More những điều kỳ lạ:
- gọi
LoadLibrary()
để tải một dll dướic:\windows\system32\some.dll
hoạt động tốt - tải một dll dưới
c:\windows\sysWow64\some.dll
sẽ thất bại (mã lỗi 193: some.dll không phải là một ứng dụng win32 hợp lệ)
Tất cả những thất bại cho thấy các ứng dụng đang chạy dưới chế độ 32bit, nhưng đây là đối với sự thật, loại con trỏ là chiều dài 8 byte
Tôi bối rối, mọi trợ giúp sẽ được đánh giá cao!
+1 Mọi thứ mà OP mô tả phù hợp 100% với ứng dụng 64 bit trên hệ điều hành 64 bit. –
@DavidSchwartz Yeah - mọi người bị lẫn lộn vì sử dụng WoW64 có nghĩa là bạn đang chạy 32 bit, điều ngược lại với những gì bạn nghĩ là đã đặt tên;) –
Câu trả lời hay. Nhận ra sự khác biệt giữa WoW64 và system32 đã cho tôi một số thời gian trước đau đầu rắn. – nothrow