के साथ साइड-बाय-साइड COM इंटरऑप मैं सी # से वीबीए COM को कॉल करने के बारे में बात नहीं कर रहा हूं ... दूसरी तरफ!सी # और वीबीए
मैं जो करना चाहता हूं वह डीएलएल पंजीकृत किए बिना एमएस एक्सेस में वीबीए का उपयोग कर सी # लाइब्रेरी को कॉल करना है। मैं सफलता के बिना थोड़ी देर के लिए साइड-बाय-साइड इंटरऑप के साथ खेल रहा हूं और अंततः यह मेरे लिए हुआ है कि एक mdb.manifest शायद exe.manifest के लिए एक स्वीकार्य प्रतिस्थापन नहीं है (शायद स्पष्ट है, मुझे पता है, लेकिन मैं आशावादी होने की कोशिश कर रहा था)।
मेरा प्रश्न: क्या वीबीए को साइड-बाय-साइड COM घटक लोड करना संभव है?
या, एक्सेस में एक अनियंत्रित सी # लाइब्रेरी का उपयोग करने का कोई और तरीका है?
(इससे पहले कि आप पूछें, मेरे कारण हैं: मुझे बिल्कुल नहीं है कि मुझे अपने क्लाइंट की विंडोज रजिस्ट्री तक पहुंच प्रदान की जाएगी - यही कारण है कि इसे पहली जगह एक्सेस में लिखा गया था। और, मुझे इसे लागू करने की आवश्यकता होगी एक सी # आवेदन में एक ही कार्यक्षमता जल्द ही और दो बार ऐसा नहीं करते हैं)।
मैंने उस एपीआई का उपयोग करने में देखा। विडंबना यह है कि, माइक्रोसॉफ्ट ने पंजीकरण से बचने के लिए एक पैकेज बनाया है जिसके लिए पंजीकरण की आवश्यकता है और मेरे पास पहले से ही वही प्रश्न छोड़ दिया गया है - इसे अपने ग्राहक की मशीन पर कैसे प्राप्त करें? हालांकि माइक्रोसॉफ्ट.Windows.Actctx विंडोज 2 के 3 के लिए उपलब्ध है + यह केवल सर्वर इंस्टॉल में शामिल है। यहां एक और एसओ सवाल है जिसके बारे में शिकायत है: http://stackoverflow.com/questions/979567/microsoft-windows-actctx-on-windows-xp। और एमएसडीएन इसे यहां बैक करता है: http://msdn.microsoft.com/en-us/library/aa375644(VS.85).aspx। – Jelly
मुझे पता है कि सक्रियण संदर्भ API कर्नेल 32 का हिस्सा हैं।lib, जिसका अर्थ है कि आपके पास कोई भी चीज़ स्थापित नहीं है, और यह किसी भी ऑपरेटिंग सिस्टम में शामिल है जिसमें एसएक्सएस के लिए समर्थन है जो WinXP SP2 और उच्चतर है। मैंने इसे WinXP SP3 पर अपना स्वयं किया है और यह किसी विशेष इंस्टॉल के साथ काम नहीं करता है। मुझे माइक्रोसॉफ्ट.Windows.Actctx के बारे में पता नहीं है, लेकिन मुझे 100% यकीन है कि आप कर्नेल 32.लिब से प्रासंगिक कार्यों को आयात करके सीधे उन्हें एपीआई का आह्वान कर सकते हैं और उन्हें सीधे इनकार कर सकते हैं। जैसा कि यह इस नमूना कोड पर प्रस्तुत किया गया है http://www.mazecomputer.com/sxs/help/sxsapi3.htm –
ओह मैं देखता हूं। वेब पर किए गए सभी उदाहरणों में मैंने वीबीए में ऐसा करने के बारे में देखा था, एपीआई के बजाए एक्टक्टक्स ऑब्जेक्ट का उपयोग करता है, जो कि मूल रूप से निष्कर्ष निकाला गया है कि यह कोड में नहीं किया जा सका। जाहिर है, यह मुझे भ्रमित करने के लिए दोनों तरीकों (और एक ही बात कहा जाता है) लागू किया गया है। मुझे इसे ऊपर उठाने और चलाने में बहुत परेशानी नहीं होनी चाहिए - और यह आईएल हैकिंग की तुलना में एक और अधिक स्थिर समाधान होना चाहिए - इसलिए जब मैं वहां जाता हूं तो स्वीकार्य समाधान ध्वज ले जाऊंगा। सहायता के लिए धन्यवाद! – Jelly