คำถามติดแท็ก dll

dynamic-link library (DLL) เป็นโมดูลที่มีฟังก์ชั่นและข้อมูลที่สามารถใช้โดยโมดูลอื่น (แอปพลิเคชันหรือ DLL) เป็นการดำเนินการตามแนวคิดของไลบรารีที่ใช้ร่วมกันของ Microsoft ในระบบปฏิบัติการ Microsoft Windows และ OS / 2

14
จะตรวจสอบ DLL พึ่งพาได้อย่างไร?
บางครั้งเมื่อฉันทำโครงการเล็ก ๆ ฉันไม่ระวังพอและบังเอิญเพิ่มการพึ่งพาสำหรับ DLL ที่ฉันไม่ทราบ เมื่อฉันจัดส่งโปรแกรมนี้ให้เพื่อนหรือคนอื่น ๆ "มันไม่ทำงาน" เพราะ "DLL บางตัว" หายไป นี่เป็นเพราะโปรแกรมสามารถค้นหา DLL บนระบบของฉัน แต่ไม่ใช่ในโปรแกรม มีวิธีสแกนการปฏิบัติการเพื่ออ้างอิง DLL หรือรันโปรแกรมในสภาพแวดล้อมที่ปราศจาก DLL "สะอาด" สำหรับการทดสอบเพื่อป้องกันสถานการณ์oopsเหล่านี้หรือไม่


14
เทียบเท่ากับ 'app.config' สำหรับไลบรารี (DLL)
มีเทียบเท่ากับapp.configสำหรับไลบรารี (DLLs) หรือไม่ ถ้าไม่เป็นวิธีที่ง่ายที่สุดในการจัดเก็บการตั้งค่าที่เฉพาะเจาะจงกับห้องสมุดคืออะไร? โปรดพิจารณาว่าอาจใช้ไลบรารีในแอปพลิเคชันอื่น
149 c#  .net  dll  settings  app-config 

22
.Net เลือกเวอร์ชั่นแอสเซมบลีที่อ้างอิงผิด
ฉันเพิ่งคัดลอกโครงการที่มีอยู่ไปยังเครื่องใหม่เอี่ยมเพื่อเริ่มพัฒนาและพบปัญหากับรุ่นหนึ่งของแอสเซมบลีที่อ้างอิงของฉัน (telerik DLL ตามที่เกิดขึ้น) โครงการเดิมอ้างถึงแอสเซมบลีเวอร์ชันเก่ากว่า (ให้เรียกมันว่า v1.0.0.0) เครื่องใหม่ของฉันมีการติดตั้งแอสเซมบลีเวอร์ชันล่าสุดดังนั้นฉันคิดว่าฉันจะอัปเดต (ให้เรียก v2.0.0.0 เวอร์ชั่นใหม่) ตอนนี้นี่คือปัญหา: ถ้าฉันคัดลอก v1.0.0.0 dll เก่าไปยังโฟลเดอร์โครงการและเพิ่มเป็นข้อมูลอ้างอิงเว็บไซต์เปิดตัวโดยไม่มีปัญหา ถ้าฉันลบการอ้างอิงนั้น (และลบ DLL เก่าออกจากระบบของฉัน) และเพิ่มเวอร์ชันใหม่ (v2.0.0.0) หน้าจะแสดงข้อยกเว้นดังต่อไปนี้: ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'XXXXXX, เวอร์ชัน = 1.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 121fae78165ba3d4' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040) เห็นได้ชัดว่ารหัสกำลังมองหารุ่นที่ล้าสมัยและไม่สามารถหาได้ แต่ทำไม ฉัน greped โฟลเดอร์โซลูชันสำหรับหมายเลขเวอร์ชันนั้นและไม่พบการอ้างอิงเดียว ฉันตรวจสอบข้อความของไฟล์. csproj อีกครั้งและพบว่าเวอร์ชันแสดงเวอร์ชั่นล่าสุดอย่างถูกต้องและ HintPath แสดงพา ธ …
141 asp.net  dll 

7
ฉันจะระบุพา ธ [DllImport] ที่รันไทม์ได้อย่างไร
ในความเป็นจริงฉันมี C ++ (ทำงาน) DLL ที่ฉันต้องการนำเข้าสู่โปรเจ็กต์ C # ของฉันเพื่อเรียกใช้ฟังก์ชั่น มันจะทำงานเมื่อฉันระบุเส้นทางแบบเต็มไปยัง DLL เช่นนี้ string str = "C:\\Users\\userName\\AppData\\Local\\myLibFolder\\myDLL.dll"; [DllImport(str, CallingConvention = CallingConvention.Cdecl)] public static extern int DLLFunction(int Number1, int Number2); ปัญหาคือมันจะเป็นโครงการที่ติดตั้งได้ดังนั้นโฟลเดอร์ของผู้ใช้จะไม่เหมือนเดิม (เช่น: pierre, paul, jack, mum, dad, ... ) ขึ้นอยู่กับคอมพิวเตอร์ / เซสชันที่ต้องการเปิดใช้งาน ดังนั้นฉันต้องการรหัสของฉันจะเป็นทั่วไปเล็กน้อยเช่นนี้ /* goes right to the temp folder of the …
141 c#  c++  dll  constants  dllimport 

12
จะหา“ Microsoft.VisualStudio.TestTools.UnitTesting” dll ที่หายไปได้ที่ไหน
ฉันได้รับข้อผิดพลาดต่อไปนี้ในโครงการ C # visual studio ของฉัน: ประเภทหรือชื่อเนมสเปซ 'VisualStudio' ไม่มีอยู่ในเนมสเปซ 'Microsoft' (คุณไม่มีการอ้างอิงแอสเซมบลีหรือไม่) ฉันพยายามค้นหาไฟล์ microsoft.dll ด้วย แต่ไม่สามารถอ้างอิงได้ ฉันค้นหา DLL ผิดหรือเปล่า using Microsoft.VisualStudio.TestTools.UnitTesting; using Kya.MsFx.Services.Swiper; namespace Kya.MsFx.Devices.Swiper.Test { [TestClass] public class SwiperWindowTest { private SwiperWebServiceHost m_SwiperWS = null; /// <summary> /// start web service on a separate thread, so tests /// can be …

6
ฉันจะกำหนดเส้นทางไปยังไฟล์ DLL ใน Visual Studio ได้อย่างไร
ฉันพัฒนาแอปพลิเคชันที่ขึ้นอยู่กับไฟล์ DLL เมื่อฉันดีบักแอปพลิเคชันของฉันแอปพลิเคชันจะบ่นว่า: "โปรแกรมนี้ไม่สามารถเริ่มได้เนื่องจากไม่พบ xxx.dll" ดังนั้นฉันต้องคัดลอกไฟล์ DLL ลงในไดเร็กทอรีเดียวกับไฟล์. vcproj ของฉัน มีวิธีตั้งค่าโปรเจ็กต์เพื่อค้นหาไฟล์ DLL ใน (โดยเฉพาะอย่างยิ่ง) พา ธ สัมพัทธ์หรือ (ไม่ต้องการ) บางพา ธ สัมบูรณ์? แนวคิดที่คล้ายกันกับวิธีที่เราตั้งค่ารวมและเส้นทางไลบรารีในการตั้งค่าโครงการ ฉันหมายถึงเมื่อฉันดีบักแอปพลิเคชันของฉัน (กดปุ่มF5) ข้อผิดพลาดข้างต้นจะปรากฏขึ้น


14
ฉันจะตั้งค่าข้อมูลเวอร์ชันสำหรับ. exe, .dll ที่มีอยู่ได้อย่างไร?
ในขั้นตอนการสร้างของเราฉันจำเป็นต้องตั้งค่าข้อมูลเวอร์ชันสำหรับไบนารีที่คอมไพล์ทั้งหมดของเรา ไบนารีบางตัวมีข้อมูลเวอร์ชันอยู่แล้ว (เพิ่มในเวลาคอมไพล์) และบางส่วนไม่มี ฉันต้องการใช้ข้อมูลต่อไปนี้: ชื่อ บริษัท ประกาศลิขสิทธิ์ ชื่อผลิตภัณฑ์ รายละเอียดสินค้า เวอร์ชันไฟล์ เวอร์ชันผลิตภัณฑ์ แอ็ตทริบิวต์เหล่านี้ทั้งหมดถูกระบุโดยบิลด์สคริปต์และต้องใช้หลังจากคอมไพล์ นี่คือไบนารีมาตรฐาน (ไม่ใช่แอสเซมบลี) ที่คอมไพล์ด้วย C ++ Builder 2007 ฉันจะทำเช่นนี้ได้อย่างไร?

17
ไม่สามารถโหลด DLL (ไม่พบโมดูล HRESULT: 0x8007007E)
ฉันมีไลบรารี dll ที่มีรหัส C ++ API ที่ไม่มีการจัดการฉันจำเป็นต้องใช้ในแอปพลิเคชัน. NET 4.0 ของฉัน แต่ทุกวิธีที่ฉันพยายามโหลด dll ของฉันฉันได้รับข้อผิดพลาด: ไม่สามารถโหลด DLL 'MyOwn.dll': ไม่พบโมดูลที่ระบุ (ข้อยกเว้นจาก HRESULT: 0x8007007E) ฉันได้อ่านและลองใช้โซลูชันของ Severa ที่พบบนอินเทอร์เน็ตแล้ว ไม่มีอะไรทำงาน .. ฉันได้ลองใช้วิธีการต่อไปนี้: [DllImport("MyOwn.dll", CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs((UnmanagedType.I4))] public static extern Int32 MyProIni(string DBname, string DBuser_pass, string WorkDirectory, ref StringBuilder ErrorMessage); เมื่อฉันลองทำตามบทความนี้และเมื่อฉันเรียกใช้ตัวอย่างนี้ (จากรหัสที่ดาวน์โหลดมา) มันทำงานโดยไม่มีปัญหา (dll ที่ใช้อยู่ในโฟลเดอร์ …
113 c#  c++  dll  pinvoke 

20
ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้อง แต่ DLL อยู่ที่นั่น
ฉันมีสถานการณ์เหมือนกับเหตุการณ์ที่ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้องแต่คำตอบนั้นไม่ได้ผลสำหรับฉัน รหัส Python ของฉันพูดว่า: import cv2 แต่บรรทัดนั้นทำให้เกิดข้อผิดพลาดที่แสดงในชื่อของคำถามนี้ ฉันติดตั้ง OpenCV ในC:\lib\opencvเครื่อง 64 บิตนี้แล้ว ฉันใช้ Python 64 บิต ตัวแปร PYTHONPATH ของฉัน: PYTHONPATH=C:\lib\opencv\build\python\2.7. โฟลเดอร์นี้มีcv2.pydและนั่นคือทั้งหมด ตัวแปรเส้นทางของฉัน: Path=%OPENCV_DIR%\bin;...โฟลเดอร์นี้มีไฟล์ DLL 39 ไฟล์เช่นopencv_core246d.dll. OPENCV_DIR มีค่านี้: OPENCV_DIR=C:\lib\opencv\build\x64\vc11. วิธีแก้ปัญหาที่ImportError: การโหลด DLL ล้มเหลว:% 1 ไม่ใช่แอปพลิเคชัน Win32 ที่ถูกต้องกล่าวว่าให้เพิ่ม "เส้นทางไบนารี opencv ใหม่ ( C:\opencv\build\bin\Release) ไปยังตัวแปรสภาพแวดล้อม …
112 python  opencv  dll  path 

14
Java เกิดข้อผิดพลาดในการเปิดคีย์รีจิสทรี
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามทำอะไรกับ Java ในพรอมต์คำสั่ง: Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3' Error: could not find Java.dll Error: could not find Java 2 Runtime Environment ฉันทำพลาดกับการลบไดเร็กทอรี Java และรีจิสตรีเมื่อสองสามวันก่อน ฉันรีสตาร์ทคอมพิวเตอร์และ java ยังใช้งานได้ดีจากนั้นฉันเริ่มต้นใหม่อีกครั้งในวันนี้และตอนนี้ฉันได้รับข้อผิดพลาดนี้ ฉันได้ลองถอนการติดตั้งและติดตั้งใหม่แล้ว แต่ดูเหมือนจะไม่ได้ผล ฉันติดตั้ง java JRE ล่าสุดและกำหนดเส้นทางในตัวแปรสภาพแวดล้อม ใครมีเบาะแสวิธีแก้ไข
112 java  dll  runtime  registry 

12
ฉันจะตรวจสอบการอ้างอิงของแอปพลิเคชัน. NET ได้อย่างไร
ฉันจะตรวจสอบการอ้างอิงของแอปพลิเคชัน. NET ได้อย่างไร ไม่อ้างอิง Walkerทำงานร่วมกับแอพพลิเคจัดการได้อย่างไร ฉันได้ดาวน์โหลดแอปล่าสุดและลองทำโปรไฟล์แอปแล้ว แต่มันก็ออกโดยไม่มีคำอธิบายมากนัก หากใช้ไม่ได้กับ. NET มีเครื่องมืออื่นที่จะช่วยแก้ปัญหาการโหลด DLL แบบรันไทม์หรือไม่

4
ฉันจะส่งผ่านวัตถุอย่างปลอดภัยโดยเฉพาะวัตถุ STL เข้าและออกจาก DLL ได้อย่างไร
ฉันจะส่งผ่านคลาสออบเจ็กต์โดยเฉพาะออบเจ็กต์ STL ไปยังและจาก C ++ DLL ได้อย่างไร แอปพลิเคชันของฉันต้องโต้ตอบกับปลั๊กอินของบุคคลที่สามในรูปแบบของไฟล์ DLL และฉันไม่สามารถควบคุมได้ว่าปลั๊กอินเหล่านี้สร้างขึ้นด้วยคอมไพเลอร์ใด ฉันทราบว่าไม่มี ABI ที่รับประกันสำหรับออบเจ็กต์ STL และฉันกังวลว่าจะทำให้แอปพลิเคชันของฉันไม่เสถียร
107 c++  windows  dll  stl  abi 

4
การส่งออกฟังก์ชันจาก DLL ด้วย dllexport
ฉันต้องการตัวอย่างง่ายๆในการส่งออกฟังก์ชันจาก C ++ Windows DLL ฉันต้องการดูส่วนหัว.cppไฟล์และ.defไฟล์ (ถ้าจำเป็นจริงๆ) ฉันต้องการชื่อที่ส่งออกจะได้รับการประดับประดา ฉันต้องการใช้รูปแบบการโทรที่เป็นมาตรฐานที่สุด ( __stdcall?) ฉันต้องการใช้__declspec(dllexport)และไม่ต้องใช้.defไฟล์ ตัวอย่างเช่น: //header extern "C" { __declspec(dllexport) int __stdcall foo(long bar); } //cpp int __stdcall foo(long bar) { return 0; } ฉันพยายามหลีกเลี่ยงตัวเชื่อมโยงที่เพิ่มขีดล่างและ / หรือตัวเลข (จำนวนไบต์?) ให้กับชื่อ ฉันไม่เป็นไรที่ไม่สนับสนุนdllimportและdllexportใช้ส่วนหัวเดียวกัน ฉันไม่ต้องการข้อมูลใด ๆ เกี่ยวกับการเอ็กซ์พอร์ตเมธอดคลาส C ++ เพียงแค่ฟังก์ชันโกลบอลสไตล์ c อัปเดต ไม่รวมหลักการเรียก (และการใช้งานextern "C") ให้ชื่อส่งออกตามที่ฉันต้องการ …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.