I am facing problem for committing transaction for Auto CAD 2013 for 32 bit Computer with transaction.Commit(). But it is working fine for 64 bit Computer. It is giving error for AccessViolation ("Attempted to read or write protected memory. This is often an indication that other memory is corrupt."). Same Code is working fine for 64 bit.
Is it require more code or import any dll?
You may reference acdbmdg.dll x64 of AutoCAD 2013 64 bit. AutoCAD 32 bit and 64 bit use different acdbmdg.dll. You should have another project for AutoCAD 2013 x86 that uses the same code with AutoCAD 2013 x64 but references different DLL file. Remember 64-bit DLL does not work on 32-bit machine.
Hi Khoa Ho - I'm sorry, but that information is not accurate. You should reference the same version of acmdg.dll, acdbmgd.dll and accoremgd.dll for both 32-bit and 64-bit builds. Maybe the mistake you're making is to reference those DLLs from the AutoCAD installation dirctory, when you should be referencing the 'stripped down' versions in the ObjectARX 2013 SDK 'inc' folder (and making sure you set Copy Local for the reference to 'False').
If you use the COM Interop assemblies - which are 32-bit/64-bit dependent - then you do have to reference the correct assembly from the inc-win32 or inc-x64 directories of the ObjectARX SDK.
Seeing some sample code would be helpful to answer why committing the transaction is actually failing in this situation.
Thank you for the correction. I did not test AutoCAD 2013 .NET API and ObjectARX 2013 SDK. My projects are on AutoCAD 2009 for both x86 and x64 so this may be a case for acmgd.dll and acdbmgd.dll in 32-bit and 64-bit builds.
Sandeep - Unless you post a code snippet or sample project, it is very unlikely that anyone will be able to guess the solution to your problem based on the information you have provided.
Log into access your profile, ask and answer questions, share ideas and more. Haven't signed up yet? Register