دليل VBReFormer Desktop
دليل مستخدم VBReFormer Desktop: التثبيت، تفعيل الترخيص، قراءة العروض السبعة، تحليل ملف ثنائي، تصدير مشروع VB6 يمكن فتحه من جديد في IDE.
حُدِّث في 20/9/202614 فصول
التطبيق المثبَّت على جهاز Windows الخاص بك. يفتح ملفاتك التنفيذية المكتوبة بـ Visual Basic 5 و6، ويعيد بناء كودها المصدري، ويعيد إليك مشروعًا يمكن لـ VB6 IDE فتحه من جديد — مع طاولة العمل الكاملة: البايتات، والموارد، والمصمِّم، والمخطَّطات، والمراجع المتقاطعة، والترقيعات الثنائية.
ملاحظة حول الترجمة. واجهة تطبيق سطح المكتب متاحة بالإنجليزية والفرنسية والإسبانية. يذكر هذا الدليل أسماء القوائم والعروض بالإنجليزية كما تظهر في التطبيق.
1. التثبيت
يُوزَّع VBReFormer Desktop على هيئة مثبِّت MSI، واحد لكل لغة واجهة. الحزمة مكتفية ذاتيًا: فهي تضمّ كل ما تحتاج إليه، ولا يلزم تثبيت أي إطار عمل مسبقًا.
| المتطلَّب | |
|---|---|
| النظام | Windows 10 الإصدار 1607 أو أحدث، أو Windows 11 |
| البنية | x64 |
| إطار العمل | لا شيء — الحزمة مكتفية ذاتيًا |
| الاتصال | مطلوب لفك الشفرة وللتحقق من الترخيص |
| لغات الواجهة | الإنجليزية، الفرنسية، الإسبانية |
Windows XP وVista و7 و8 غير مدعومة. يعتمد التطبيق على منصة تتطلب Windows 10 على الأقل. إن كان جهازك أقدم من ذلك، فإن VBReFormer Online يعمل في أي متصفح وعلى أي نظام — وهو المسار الموصى به في هذه الحالة.
أين يعمل المحرِّك
التطبيق محلي؛ أما إعادة بناء الكود فتجري على خوادمنا. هذا ما يعنيه اسم الإصدار — Desktop + Cloud. كل ما يُقرأ من الملف (الصيغة، والبايتات، وفك التجميع، والموارد) يُحسب على جهازك؛ وكل ما يُعاد بناؤه يمر عبر الخدمة.
يخبرك مربع Help ▸ About (تعليمات ▸ حول) في أي وقت بإصدار المحرِّك المتصل، وإصدار العقد، وقائمة القدرات المُقدَّمة (Capabilities served) — وهي مفيدة عندما لا تظهر إحدى الميزات: فإن لم تكن في تلك القائمة، فليست الواجهة هي التي ترفضها.
2. تفعيل الترخيص
من دون ترخيص، يُفتح التطبيق ويعمل: يمكنك استكشاف ملف ثنائي، وقراءة فك التجميع كاملًا، والبايتات، والموارد، والمصمِّم. أما ما يفتحه الترخيص فهو إعادة بناء كود VB6 وتصدير المشروع.
مقعد واحد في كل مرة
يفتح ترخيص VBReFormer جهاز عمل واحدًا في كل مرة. إن كنت تستخدمه بالفعل في مكان آخر، يخبرك التطبيق بذلك بوضوح ويعرض عليك مخرجين: نقل الترخيص إلى هذا الجهاز من حسابك، أو إضافة مقعد.
إنه رفض لطيف: فقد دفعت، ولا ينقصك شيء. والرسالة تقول ذلك بهذه الصيغة بدلًا من إرجاع خطأ تقني.
ويُعدّ المتصفح المفتوح على VBReFormer Online مقعدًا أيضًا: فالاستوديو عبر الإنترنت وتطبيق سطح المكتب يستهلكان الترخيص نفسه.
3. النافذة
- افتح ملفًا ثنائيًا. File ▸ Open a VB6 binary (ملف ▸ فتح ملف VB6 ثنائي) (
Ctrl+O). الصيغ المقبولة هي.exeو.dllو.ocxو.scr. يعرض شريط الحالة التحليل الجاري، ثم اسم الملف وشكل ترجمته البرمجية — كود أصلي أو P-code. - تصفَّح لوحة PROJECT. على اليسار، يُعرض الملف الثنائي كما رآه VB6: النماذج، والفئات، والوحدات، وإجراءاتها. تمتلئ الشجرة عند الطلب — فتوسيع عقدة يطلب أبناءها؛ ولا يُحسب شيء مسبقًا، وهذا ما يُبقي الفتح سريعًا حتى مع ملف تنفيذي كبير.
- اختر إجراءً. تظهر عروض تلك العقدة على اليمين. وإن لم يُقدَّم أي عرض لعقدة ما، يُكتب السبب على الشاشة بدلًا من لوحة فارغة.
اللوحات السفلية
| التبويب | الغرض منه |
|---|---|
| Output (المخرجات) | سجل العمليات. يحتفظ باللغة التي كُتب بها كل سطر، حتى لو غيّرت لغة الواجهة — فالسجل محضر، لا عرض. |
| Diagnostics (التشخيصات) | ما رفض المحرِّك فعله، ولماذا. وهو ما يجب اللجوء إليه فور أن تفاجئك نتيجة ما. |
| Analyser (المحلِّل) | المراجع المتقاطعة: مستدعو إجراء ما، ومواضع ظهور رمز ما. النتيجة قابلة للنقر. |
مستوى ظهور الأعضاء
يحمل كل عضو في الشجرة مستوى ظهوره كما يعلنه الملف الثنائي — (Public) و(Private) و(Friend). هذه كلمات مفتاحية في VB6: لا تُترجَم. أما العضو الذي تعذَّرت قراءة مستوى ظهوره فـلا يحمل أي علامة: فنحن لا نكتب ما لا نعرفه.
4. العروض السبعة
تنتظم في ثلاث عائلات، وهذا الفصل بينها يخبرك من أين يأتي ما تقرؤه. وهو أنفع ما يمكن فهمه.
عائلة «Code» — مُعاد بناؤها بالتحليل
| العرض | ما يعرضه | متى تنظر إليه |
|---|---|---|
| Visual Basic 6 | المصدر المُعاد بناؤه والمُهيكَل | افتراضيًا — هذا ما تبحث عنه |
| IR | التمثيل الوسيط | لترى ما فهمه المحرِّك |
| Disassembly | تعليمات الآلة x86 | لترى ما ينفِّذه المعالج |
| P-code | أوامر الآلة الافتراضية لـ VB6 | للملفات الثنائية بصيغة P-code فقط |
النزول في هذه القائمة هو اتجاه نحو الآلة. وعند الشك في سطر ما: Visual Basic 6 يقول القصد، وDisassembly يقول الواقع.
عائلة «Project files» — مقروءة لا مستنتَجة
Designer (.frm) وProject (.vbp) وStructure. لا شيء هنا يمر بإعادة بناء الكود: فكل شيء قُرئ من جداول في الملف الثنائي، وما تعذَّرت قراءته يُكتب بكلمات صريحة بدلًا من أن يُملأ. إنها العائلة الأكثر موثوقية في المنتج، والتي لا تعتمد على أي استنتاج.
عائلة «Resources»
انظر الفصل 9.
5. ما تحتفظ به الترجمة البرمجية، وما تطرحه
يشرح هذا الفصل لماذا تعود بعض أجزاء كودك شبه سليمة بينما تعود أجزاء أخرى بأسماء تقنية. القاعدة بسيطة:
ما يحتاج إليه Visual Basic في وقت التشغيل، كتبه في الملف: وVBReFormer يجده من جديد. وما لم يعد يحتاج إليه بعد الترجمة البرمجية، طرحه — ولا أحد يستطيع استعادته.
ما يبقى: أسماء النماذج والفئات والوحدات · أسماء عناصر التحكم · معالجات الأحداث · الأعضاء العامة للفئات · كل خاصية من خصائص الواجهة · استدعاءات بيئة تشغيل VB (635 دالة) · واجهة Win32 API (15,680 توقيعًا) · بنية الكود · السلاسل النصية.
ما ليس في الملف: التعليقات · أسماء المتغيرات المحلية · أسماء المعاملات · الثوابت المسمّاة، وقد استُبدلت بقيمها · أسماء الإجراءات في وحدات .bas · المسافة البادئة الأصلية · Option Explicit وتعدادات Enum.
النتيجة العملية. تعود نماذجك مقروءة جدًا. وتعود وحدات
.basصحيحة، لكن بأسماء تقنية (proc_42C506). ولهذا وُجدت وظيفة Rename (إعادة التسمية) (F2)، وهي تنشر الاسم الجديد إلى كل موضع استدعاء في المشروع — انظر الفصل 7.
مثالان يمكن التحقق منهما
المقتطفات أدناه مأخوذة من SETUP1.EXE، معالج التثبيت المرفق مع Visual Basic 6. توزّع Microsoft كوده المصدري في المجلد نفسه — لذا يمكنك إعادة المقارنة بنفسك.
إجراء من وحدة .bas
المصدر الأصلي، COMMON.BAS:
Sub AddDirSep(strPathName As String)
If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
strPathName = RTrim$(strPathName) & gstrSEP_DIR
End If
End Sub
كما يعرضه VBReFormer:
Public Sub proc_42C506(ByRef arg_8 As String)
If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
arg_8 = (RTrim$(arg_8) & "\")
End If
End Sub
منطق متطابق، سطرًا بسطر. Right وTrim وLen وRTrim$ مسمّاة؛ والتمرير بـ ByRef مستنتَج بشكل صحيح. في المقابل، ضاع اسم الإجراء واسم المعامل، وتظهر الثوابت بـقيمتها — فالمُترجِم هو الذي استبدلها، لا VBReFormer.
معالج حدث
المصدر الأصلي، BEGIN.FRM:
Private Sub cmdExit_Click()
ExitSetup Me, gintRET_EXIT
End Sub
كما يعرضه VBReFormer:
Private Sub cmdExit_Click()
Set var_18 = Me
basSetup1.proc_41CE2D var_18, var_1C
End Sub
اسم النموذج واسم الزر واسم المعالج سليمة؛ وMe مُتعرَّف عليه؛ والوحدة المستدعاة مسمّاة، وهذا يخبرك إلى أين تذهب. وحده الإجراء المستدعى، الموجود في ملف .bas، يحتفظ باسم عنوانه.
العلامات
VBReFormer لا يخمِّن أبدًا. فالقيمة التي يتعذَّر إثباتها تُعلَّم بدلًا من أن تُختلَق — فالقيمة المعقولة الخاطئة هي أسوأ نتيجة يمكن أن ينتجها مُفكِّك الشفرة.
| العلامة | المعنى | ما يجب فعله |
|---|---|---|
proc_42C506 |
إجراء مُعيَّن بعنوانه | أعد تسميته (F2) |
var_18، arg_8 |
متغير محلي أو معامل | اقرأ استخدامه، ثم أعد تسميته |
vtbl_3C |
استدعاء عبر جدول افتراضي لم يُحلّ | كثيرًا ما يخبرك Object Browser بأي مكتبة هي |
? |
قيمة لم تُثبَت | انظر إلى عرض Disassembly في الموضع نفسه |
الملف الذي يحتوي على
?سيرفضه VB6 IDE. فالعلامة موجودة لتقرر أنت، لا لتُعاد ترجمتها كما هي.
6. أدوات التحليل
هنا يختلف إصدار سطح المكتب أكثر ما يختلف: فهو يقدّم طاولة عمل كاملة، بينما يركّز الاستوديو عبر الإنترنت على القراءة وفك الشفرة والتصدير.
| الأداة | الاختصار | ما تمنحك إياه |
|---|---|---|
| Analyse references (تحليل المراجع) | Shift+F12 |
مستدعو إجراء ما، ومواضع ظهور رمز ما — نتيجة قابلة للنقر، والتغطية مُقدَّرة كميًا: ما لا يراه التحليل يُعَدّ، ولا يُسكَت عنه |
| Symbol list (قائمة الرموز) | Ctrl+Shift+S |
الحصر الكامل، قابل للتصفية بحسب النوع والنطاق — وهو يميّز الأسماء المقروءة من الأسماء المُركَّبة |
| Call graph (مخطَّط الاستدعاءات) | Ctrl+Shift+A |
مَن يستدعي ماذا، على ثلاثة مقاييس، مع مرشِّحات للمستدعين / المستدعَين |
| Control-flow graph (مخطَّط مسار التنفيذ) | Ctrl+Shift+G |
شكل الإجراء: الكتل، والحلقات، وحواف الرجوع، والكتل غير القابلة للبلوغ |
| Object Browser (مستعرض الكائنات) | Ctrl+Shift+B |
«أين يُعرَّف هذا؟» عندما تكون الإجابة خارج الملف الثنائي |
| API Browser (مستعرض API) | Ctrl+Shift+P |
النماذج الأولية والأسماء البديلة والملاحظات الخاصة بتصريحات Win32 |
| Cited libraries (المكتبات المُشار إليها) | Ctrl+K |
ما يعتمد عليه الملف الثنائي |
| Find VB programs (البحث عن برامج VB) | Ctrl+L |
العثور على الملفات التنفيذية VB في مجلد ما |
| Find (بحث) | Ctrl+Shift+F |
بحث نصي عبر العروض المُقدَّمة |
| Bookmarks (الإشارات المرجعية) | Ctrl+F2 |
علِّم مواضع، وعُد إليها (F8 / Shift+F8) |
| Back / forward navigation (التنقل للخلف / للأمام) | Alt+← Alt+→ |
كما في المتصفح |
لماذا التغطية مُقدَّرة كميًا. يرى مخطَّط الاستدعاءات الأصلي الاستدعاءات المباشرة؛ ولا يرى الاستدعاءات عبر الجداول الافتراضية ولا مؤشرات الدوال. وبدلًا من تقديم قائمة جزئية على أنها كاملة، يعرض VBReFormer ما يغفله، معدودًا. فتعرف عندئذٍ إلى أي حد تثق بالنتيجة.
7. إعادة التسمية
إنها الحركة المحورية في العمل على ملف ثنائي: يعيد إليك مُفكِّك الشفرة المنطق، وتعيد إليه أنت الأسماء. F2 على رمز ما، أو من قائمة الرموز.
يعرض المربع ثلاثة أشياء تخفيها مُفكِّكات الشفرة عادةً:
- أصل الاسم الحالي — أعطيته أنت، أو استنتجه مُفكِّك الشفرة، أو أُعيد بناؤه؛
- مقترحات مُفكِّك الشفرة، ولكل منها أولويته والمصدر الذي جاء منه؛
- الاسم الأصلي، الذي يمكنك العودة إليه دائمًا.
إعادة التسمية شاملة. أعد تسمية إجراء مرة واحدة، فتتبعه مواضع الاستدعاء في الوحدات الأخرى — بما فيها تلك التي لم تفتحها بعد.
إعادة التسمية المرفوضة تُرفض دائمًا مع سببها. حالتان شائعتان: المحرِّك لا يعلن قدرة إعادة التسمية على هذا المستند، أو العرض الحالي لا يحمل سوى أجزاء معجمية — تكفي لتلوين النص، ولا تكفي لتعيين كيان. وفي الحالتين تقول الرسالة ذلك، بدلًا من ألا تفعل شيئًا.
8. البايتات والترقيعات الثنائية
Navigate ▸ Show bytes (تنقل ▸ عرض البايتات) (Ctrl+Shift+H) يفتح العرض السداسي العشري المشروح: فهو لا يعرض البايتات فحسب، بل يقول ما تمثّله كل منطقة. وGo to address (الانتقال إلى عنوان) (Ctrl+G) ينقلك إليه مباشرة.
تعديل الملف التنفيذي
يتيح لك الوضع «raw» كتابة بايتات وإنتاج ملف تنفيذي معدَّل. ويُؤطَّر بأربعة رفضات، كل منها يحمي شيئًا:
| الرفض | لماذا |
|---|---|
| الملف المُحلَّل ليس أبدًا هو الوجهة | لا يفتحه المحرِّك للكتابة أبدًا؛ والواجهة لا تنقض هذا الضمان |
| الكتابة فوق ملف موجود تُؤكَّد | «لا يمكن التراجع عن هذا» |
| سيُزال توقيع Authenticode | تُطلب موافقتك مسبقًا؛ ويمكنك إعادة التوقيع بشهادتك الخاصة |
| الترقيع المرفوض لا يكتب شيئًا على الإطلاق | لا ملف نصف مكتوب |
الاستوديو عبر الإنترنت لا يقدّم الترقيعات الثنائية ولا العرض السداسي العشري: فهاتان وظيفتان خاصتان بإصدار سطح المكتب.
9. الموارد والمصمِّم
موارد الملف الثنائي
الأيقونات، والمؤشرات، والصور النقطية، وجداول السلاسل النصية، ومعلومات الإصدار: كل ما كان ملف .res سيحمله. يعرض كل مُدخل نوعه وحجمه وما يمكن فعله به، والاستخراج ممكن مُدخلًا بمُدخل أو دفعة واحدة.
المورد الذي لا يعرف المنتج كيف يرسمه يبقى مدرجًا ويُعرض على هيئة بايتات: فهو لا يُخفى أبدًا. وإن تعذَّر تتبّع مُدخلات الدليل، يخبرك تحذير بذلك — فتعرف عندئذٍ أن القائمة أقصر مما يحمله الملف الثنائي.
مصمِّم النماذج
يُرسَم سطح النموذج كما كان VB6 سيعرضه، انطلاقًا من الخصائص المقروءة في الملف الثنائي، وبترتيب الرسم الصحيح. ويمكن تصدير صورة النموذج (Ctrl+I).
الخصائص للقراءة فقط: يعرف VBReFormer كيف يقرأ سطح نموذج ما، لكنه لا يعرف بعد كيف يعيد كتابته في الملف التنفيذي المُترجَم. انظر الفصل 13.
10. تصدير المشروع
- راجع لوحة Diagnostics أولًا. فهي تقول ما تعذَّر فعله. وقراءتها قبل التصدير تغنيك عن البحث لاحقًا عن سبب غياب عنصر ما.
- File ▸ Export the VB6 project (ملف ▸ تصدير مشروع VB6). اختر مجلد وجهة فارغًا.
- اقرأ ملاحظات التصدير. يكتب VBReFormer ما تعذَّر عليه استعادته، ولماذا. فبعض المعلومات — المراجع الخارجية، وخيارات الترجمة البرمجية، ووضع بدء التشغيل — ليست في أي بنية من بنى الملف الثنائي: لم تُمحَ، بل لم تكن هناك قط. تُعلَّم بدلًا من أن تُختلَق.
- افتح ملف
.vbpفي Visual Basic 6. الترويسات التي يتطلبها IDE (VERSIONوAttribute VB_Name) مكتوبة. وإن كان مرجع ما مفقودًا، فأضفه من خلال Project ▸ References (مشروع ▸ المراجع).
رفضا كتابة يحميانك. تُكتب ملفات VB6 بترميز ANSI 1252. يرفض VBReFormer الكتابة إن كانت مجموعة المحارف هذه غير متاحة على الجهاز — فالكتابة بمجموعة أخرى ستنتج ملفًا خاطئًا بصمت — أو إن كان أحد محارف كودك غير موجود فيها، وفي هذه الحالة يخبرك بأي محرف هو وبنقطة ترميزه.
11. الخيارات
| الإعداد | ما يفعله |
|---|---|
| Indentation width (عرض المسافة البادئة) | لا ينطبق إلا على الكود المُعاد بناؤه: فك التجميع، وIR، وP-code، وكتلة المصمِّم، وملف .vbp لا يُنسَّق أي منها بهذا المحرِّر. |
| Code page (designer) (صفحة الترميز (المصمِّم)) | الصفحة التي تُقرأ بها تسميات المصمِّم ونصوصه. لا يعلن الملف الثنائي VB6 صفحته في أي مكان — قِيس ذلك على 236 ملفًا ثنائيًا. فإن ظهرت تسميات نموذج ما بمحارف غير متسقة، فهذا هو الإعداد الذي ينبغي تغييره. |
Group under With…End With (التجميع تحت With…End With) |
معطَّل افتراضيًا. المخرجات مؤهَّلة بالكامل (Frame1.Caption)، لأن المُترجِم يحلّ كتل With وإعادة بنائها ستكون تخمينًا. فعِّله إن كنت تفضّل سهولة القراءة على الحرفية. |
| Syntax colouring (تلوين بناء الجملة) | دور واحد، لون واحد — تأتي الأدوار من المحرِّك، الذي يقول ما هو كل جزء. ترميز #RRGGBB؛ ولوحة الألوان غير الصالحة لا تُطبَّق نصفيًا. |
| Interface language (لغة الواجهة) | الإنجليزية، الفرنسية، الإسبانية — والتغيير فوري. |
تنتقل إعدادات العرض مع كل طلب عرض؛ ولا تُثبَّت أبدًا كحالة جلسة. لذلك فتغيير المسافة البادئة لا يعيد تحليل شيء.
12. الاختصارات
| الاختصار | العملية |
|---|---|
Ctrl+O |
فتح ملف VB6 ثنائي |
F2 |
إعادة تسمية الرمز الواقع تحت المؤشر |
Shift+F12 |
تحليل المراجع |
Ctrl+Shift+F |
البحث في المشروع |
Ctrl+G |
الانتقال إلى عنوان |
Ctrl+Shift+H |
عرض البايتات |
Ctrl+Shift+S |
قائمة الرموز |
Ctrl+Shift+B |
Object Browser |
Ctrl+Shift+P |
API Browser |
Ctrl+Shift+G |
مخطَّط مسار التنفيذ |
Ctrl+Shift+A |
مخطَّط الاستدعاءات |
Ctrl+K |
المكتبات المُشار إليها |
Ctrl+L |
برامج VB في مجلد ما |
Ctrl+F2 |
تبديل الإشارة المرجعية |
F8 / Shift+F8 |
الإشارة المرجعية التالية / السابقة |
Ctrl+Shift+F2 |
قائمة الإشارات المرجعية |
Alt+← / Alt+→ |
التنقل للخلف / للأمام |
Ctrl+I |
حفظ صورة النموذج |
13. الحدود المعروفة
تعديل واجهة ملف تنفيذي مُترجَم
يقرأ VBReFormer سطح النموذج وكل خصائصه — لكنه لا يعرف بعد كيف يعيد كتابتها في الملف التنفيذي. فاستبدال مورد مضمَّن وإضافة خاصية مخفية من دون إعادة ترجمة غير متاحين. أما الترقيعات الثنائية — كتابة بايتات عند عنوان ما — فمتاحة (الفصل 8).
موارد .ctx الخاصة بـ UserControl
لا يُكتب أي ملف .ctx عند التصدير. فإن كان مشروعك يحتوي على عناصر UserControl ذات موارد مُحفوظة، فذلك الجزء يلزم إعادة بنائه.
Windows قبل الإصدار 10
استخدم VBReFormer Online: يكفي متصفح، أيًا كان النظام.
ما لا يتجاوزه أي مُفكِّك شفرة
التعليقات، وأسماء المتغيرات المحلية، والثوابت المسمّاة: ليست في الملف. انظر الفصل 5.
14. الأسئلة الشائعة
وظيفة من القائمة لا تستجيب. لماذا؟ افتح Help ▸ About وانظر إلى قائمة القدرات المُقدَّمة. إن لم تكن الوظيفة هناك، فليست الواجهة هي التي ترفض: فالمحرِّك لا يقدّمها لهذا المستند. ورسائل التطبيق تقول ذلك صراحةً أيضًا.
هل يُعاد ترجمة الكود المُصدَّر كما هو؟ غالبًا: على منصة اختبار من 149 مشروعًا، أُعيدت ترجمة 121 من دون أي تعديل. أما البقية فتحتاج إلى إضافة مرجع أو معالجة بضع علامات.
تسميات نموذجي غير مقروءة. إنها صفحة الترميز. فالملف الثنائي VB6 لا يعلن في أي مكان صفحة نصوص مصمِّمه — اضبطها في الخيارات (الفصل 11).
لماذا نماذجي أكثر مقروئية من وحداتي؟ لأن VB6 يحتفظ بأسماء عناصر التحكم والأحداث ليعمل، بينما يحلّ إجراءات الوحدات إلى عناوين مجردة. انظر الفصل 5.
ملفي التنفيذي مضغوط بمُحزِّم. هل هذه مشكلة؟ نعم: يجب فك ضغطه أولًا، وإلا فلن تكون بنى VB6 مرئية في الملف.
هل يمكن فك شفرة ملف .ocx أو ملف .dll من نوع ActiveX؟
نعم، وحصر الأعضاء العامة أغنى هناك عمومًا، لأن COM يتطلب تسميتها.
هل يُرسَل ملفي الثنائي إلى أي مكان؟ تُعالَج قراءة الصيغة والبايتات وفك التجميع والموارد على جهازك. أما إعادة بناء الكود فتجري على خوادمنا — وهذا هو معنى إصدار Desktop + Cloud.
هل هذا قانوني؟ يتوقف ذلك على ولايتك القضائية وعلى حقوقك في الملف الثنائي. فالاستخدام المقصود هو استعادة كودك أنت، أو كود تملك حقوقه أو تصريحًا بشأنه.
انظر أيضًا
دليل VBReFormer Onlineجرّب دون شراء