คำถามติดแท็ก 32-bit

11
ฉันจะบอกได้อย่างไรว่าฉันใช้ JVM 64- บิตหรือ JVM 32- บิต (จากภายในโปรแกรม)
ฉันจะทราบได้อย่างไรว่า JVM ที่แอปพลิเคชันของฉันทำงานคือ 32 บิตหรือ 64 บิต โดยเฉพาะฟังก์ชั่นหรือคุณสมบัติใดที่ฉันสามารถใช้เพื่อตรวจจับสิ่งนี้ภายในโปรแกรม?

19
“ มีความพยายามในการโหลดโปรแกรมด้วยรูปแบบที่ไม่ถูกต้อง” แม้ว่าแพลตฟอร์มจะเหมือนกันก็ตาม
ฉันกำลังเรียกใช้ฟังก์ชันจาก DLL ที่ไม่มีการจัดการ 32 บิตในระบบ 64 บิต สิ่งที่ฉันได้รับคือ: BadImageFormatException: มีความพยายามในการโหลดโปรแกรมด้วยรูปแบบที่ไม่ถูกต้อง (ข้อยกเว้นจาก HRESULT: 0x8007000B) ตอนแรกฉันตั้งโปรเจคของฉันเป็นแพลตฟอร์มใด ๆ ของ CPU ดังนั้นฉันจึงเปลี่ยนทั้งสองเป็น x86 แต่ข้อผิดพลาดนี้ยังคงเกิดขึ้น นั่นเป็นสิ่งเดียวที่ฉันรู้ในเรื่องนี้ DLLs ไม่เสียหายหรืออะไรเพราะฉันสามารถใช้พวกเขากับโปรแกรมอื่น ๆ (ที่ฉันไม่มีที่มา) ฉันคิดว่าบางทีมันอาจจะไม่ได้รับการอ้างอิง แต่ฉันตรวจสอบและพวกเขาทั้งหมดอยู่ที่นั่น นอกจากนี้จะไม่โยนDllNotFoundExceptionในกรณีนี้หรือไม่? ฉันจะทำอะไรได้อีก และก่อนที่คุณจะพูดว่า "ใช้ DLL ที่ไม่มีการจัดการ 64 บิตแทน" ให้ฉันชี้ให้เห็นว่าไม่มี ;)

6
วิธีรวบรวมไบนารี 32 บิตบนเครื่อง linux 64 บิตด้วย gcc / cmake
มันเป็นไปได้ที่จะรวบรวมโครงการใน32 บิตด้วยcmakeและgccใน64 บิตระบบ? มันอาจจะเป็น แต่ฉันจะทำอย่างไร? เมื่อฉันพยายามมันว่า "โง่เขลา" วิธีโดยไม่ต้องตั้งค่าพารามิเตอร์ใด ๆ / ธง / etc เพียงการตั้งค่าLD_LIBRARY_PATHเพื่อหาห้องสมุดเชื่อมโยงใน~/tools/libมันก็ดูเหมือนจะไม่สนใจมันและมีเพียงมองในไดเรกทอรีย่อยชื่อlib64
129 linux  gcc  64-bit  cmake  32-bit 

6
การอ่าน 64 บิต Registry จากแอปพลิเคชัน 32 บิต
ฉันมีโครงการทดสอบหน่วย ac # ที่คอมไพล์สำหรับ AnyCPU บิลด์เซิร์ฟเวอร์ของเราเป็นเครื่อง 64 บิตและติดตั้งอินสแตนซ์ 64 บิต SQL Express โครงการทดสอบใช้รหัสที่คล้ายกับข้อมูลต่อไปนี้เพื่อระบุพา ธ ไปยังไฟล์. MDF: private string GetExpressPath() { RegistryKey sqlServerKey = Registry.LocalMachine.OpenSubKey( @"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" ); string sqlExpressKeyName = (string) sqlServerKey.GetValue( "SQLEXPRESS" ); RegistryKey sqlInstanceSetupKey = sqlServerKey.OpenSubKey( sqlExpressKeyName + @"\Setup" ); return sqlInstanceSetupKey.GetValue( "SQLDataRoot" ).ToString(); } รหัสนี้ใช้งานได้ดีบนเวิร์กสเตชัน …
100 c#  .net  64-bit  registry  32-bit 

9
ความเข้ากันได้ของ Java 32 บิตเทียบกับ 64 บิต
โค้ด Java ที่สร้างและคอมไพล์เทียบกับ JDK 32 บิตเป็นโค้ดไบต์ 32 บิตทำงานใน JVM 64 บิตหรือไม่ หรือ JVM 64 บิตต้องการรหัส 64 บิตไบต์? เพื่อให้รายละเอียดเพิ่มเติมเล็กน้อยฉันมีโค้ดที่ทำงานในสภาพแวดล้อม Solaris ที่ใช้ JVM 32 บิต แต่ตอนนี้ฉันได้รับปัญหาหลังจากอัปเกรด JDK และ Weblogic Server เป็น 64 บิต

10
การแปลงตัวชี้เป็นจำนวนเต็ม
ฉันกำลังพยายามปรับรหัสที่มีอยู่ให้เป็นเครื่อง 64 บิต ปัญหาหลักคือในฟังก์ชันหนึ่ง coder ก่อนหน้านี้ใช้อาร์กิวเมนต์ void * ที่ถูกแปลงเป็นประเภทที่เหมาะสมในฟังก์ชันนั้นเอง ตัวอย่างสั้น ๆ : void function(MESSAGE_ID id, void* param) { if(id == FOO) { int real_param = (int)param; // ... } } แน่นอนในเครื่อง 64 บิตฉันได้รับข้อผิดพลาด: error: cast from 'void*' to 'int' loses precision ฉันต้องการแก้ไขสิ่งนี้เพื่อให้มันยังคงทำงานบนเครื่อง 32 บิตและสมบูรณ์ที่สุด ความคิดใด ๆ ?
88 c++  gcc  casting  64-bit  32-bit 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.