سؤال

أحصل على علة مع نظام التشغيل Windows Vista 64 بت من تطبيق 32 بتساء، عندما أحاول استخدام الوظيفة WOW64DisableWOW64FSRectionRection (...) يقول المحول البرمجي "المعرف غير المعلن ...".

أنا بما في ذلك ملف رأس Windows.h وتعيين _win32_winnt إلى 0x0501.

أيه أفكار؟

شكرا.

تحرير: نحن نستخدم MS Visual Studio 2003

هل كانت مفيدة؟

المحلول

يمكنك أن ترى هذا API في ملف الرأس؟ قد يكون Microsoft Visual Studio الذي تستخدمه هو عدم تحديث ملف رأس، وفي هذه الحالة، ستحتاج إلى القيام ب LoadLibrary ل Kernel32.dll ثم GetProcaddress للوظيفة المطلوبة.

نصائح أخرى

من المحتمل أن تكون ملفات SDK منصة قديمة جدا في هذه الوظيفة. ظهرت هذه الوظيفة لأول مرة في SDK منصة XP 64 بت. يمكنك الحصول على أحدث SDK هنا: http://www.microsoft.com/downloads/details.aspx؟familyid=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en.

على الرغم من أنها تقول إنها "Windows SDK لنظام التشغيل Windows Server® 2008"، إلا أنها مجرد أحدث SDK ولديها جميع الملفات المتوافقة مع الوراء التي تحتاجها.

بعد تثبيته، اعتمادا على برنامج التحويل البرمجي الخاص بك، ربما يجب أن توجه إلى دليل التضمين عليه.

إذا احتاج طلبك إلى العمل على نظام التشغيل Windows XP 32 بت أو Windows 2000، فيجب عليك استخدامه LoadLibrary() و GetProcAddress() كما اقترح كانوبس، لأن Wow64DisableWow64FsRedirection() و Wow64RevertWow64FsRedirection() لم تتم إضافتها حتى نظام التشغيل Windows XP 64-BIT و Server 2003 SP1 (وفقا ل توثيق).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top