Menu

#77 Runtime Error R6034

New
nobody
None
Medium
Defect
2016-02-10
2014-03-13
jarrys
No

I'm using 3DS Max 2014, When I launch 3ds Max it crashes showing the following error:

"Runtime Error!

Program: C:\Program Files\Autodesk\3ds Max 2014\3dsmax.exe

R6034

An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information"

It happens right after initializing blur RolloutCreator.

Discussion

  • Hendricks

    Hendricks - 2014-03-13

    The current Blur3dsMax installer for max 2014 moves the qt dlls from the max 2014 folder to bin\qt_back. This was necessary for older versions of Max, but now we are installing qt into the max 2014 folder. To fix this you can copy the files in bin\qt_back into the root max folder. This will be fixed in the next release of our installers.

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    Hey Hendricks,
    on that note, at several of the studio i work at i have a modular way of distributing plugins and tools via a software launcher.
    plugins are install as stand alone modules with all the file that make up the distribution.
    this modules are usually made by installing the plugins in to an empty fame max directory.
    this way we can quickly identify all the new files and move them into a module structure for easy deployment...

    when installing the latest build i noticed that the qtDlls were in fact drooped into the max root, but not on the fake target directory that i pointed the installer too..
    it would be nice if this dll's were to be installed in the folder specified in the installer gui.

    I'm also curios if this files have to be in the max root, or if i can keep them in a separate network location and have max still loaded by adding the path to this file to the windows system path...

    thanks buddy...
    cheers,
    Los.

     
    • Hendricks

      Hendricks - 2014-03-27

      The Qt dlls do not need to be in the max root, but must be found before any other qt dlls, so add them at the beginning of your path variable when installing max. We install to the max folder to so we can have two versions of qt/pyqt installed on the same machine. A version that is compatible with max 2014(msvc2010) and a version compatible with all older max versions(msvc2008).

      The new installers should install to the directory you choose in the ui.

      The BlurOffline installer is passing '/S /noUninstallerReg /noRegisterPath /D=$INST_DIRECTORY"' to the Qt installer to install silently at that location. /noUninstallerReg is used to prevent adding the uninstall registry keys as this is handled elsewhere by blurOffline. /noRegisterPath is used to prevent adding the install path to the system path environment variable. /S is for silent mode. /D="" controls where the installer installs to.

      /S and /D are available in pyqt, and blur_python installers.

       
  • carlos anguiano

    carlos anguiano - 2014-03-27

    tried the new installer seems to work well... i'm exited to see the new pymax name space...
    i tried running the actions from the python menu but got missing python dll errors...
    I'm guessing they are still pointing to the python name space...

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    mistery solved...
    the init_python.ms file in the scripts\startup is still using the python name space...

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    this is actually incorrect
    by the way the initial run-time error was because i still had blur64 folder in my system path...
    once i removed it, everything worked peachy :)

     

    Last edit: carlos anguiano 2014-03-27
  • carlos anguiano

    carlos anguiano - 2014-03-27

    very interesting... so i patch the init_python.ms script and i started to get this c++ run time error again...
    so i change line 97 back to python which basically makes it so that the python initialization does not happen...
    i restarted and max laoded up with no issues...

    i then test qt from maxscript...

    qt = pymax.import "PyQt4.QtGui"
    qt.QMessageBox.about None "test" "test"

    boom... message box worked perfectly...
    so python is working, and qt is working...
    so i don't think this message is related to the caddies.gup what so ever...
    seance both python and qt seem to be accessible when the initialization in is skipped...
    I'm not going to look into the ini_python.ms and see what line is creating the issue...

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    error message seems to happen here..
    pymax.run ( pythonScriptsPath + "/startup.py" )
    if i run this by hand max does not freeze when the runtime error comes up...
    i can click ok, and continue to work...
    also qt and the python menu begin working for me...

     

    Last edit: carlos anguiano 2014-03-27
  • carlos anguiano

    carlos anguiano - 2014-03-27

    ok...
    so following the loging of the startup.py...
    the error seems to be happening when we import blurdev

    I'm tried to import it the blurdev module via PyMax.import and i got the following error...

    pymax.import "blurdev"
    -- Runtime error: Traceback (most recent call last):
    File "c:_PIPELINE_SYNC\SoftwareLauncher\apps\3dsmax\versions\3dsmax2014\modules\blurPython_PyQt _3_20_2014\server\Lib\site-packages\blurdev__init.py", line 23, in <module>
    import blur.Stone
    File "c:_PIPELINE_SYNC\SoftwareLauncher\apps\3dsmax\versions\3dsmax2014\modules\blurPython_PyQt _3_20_2014\server\Lib\site-packages\blur\Stone__init
    .py", line 2, in <module>
    from .._Stone import *
    ImportError: DLL load failed: The specified module could not be found.

    seems like this module is doing something goofy...

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    by the way i'm on windows 8....
    what os are you guys running??

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    this tickets can probably be combined...
    https://sourceforge.net/p/blur-dev/tickets/75/

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    Ok last post of the night...
    looking at the blur.Stone module.
    the line that fails is line 2
    from .._Stone import *
    the module is located in Lib\site-packages\blur\Stone
    due to the use of ".." on the module i would suspect that the developers expected for there to be a module "_Stone" in site-packages_Stone
    it is not there...
    am i missing something?

     

    Last edit: carlos anguiano 2014-03-27
  • carlos anguiano

    carlos anguiano - 2014-03-27

    here's the culprit...
    pymax.import "blur._Stone"

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    something tells me his is going to be a sad widnows 8 issue :(

     
  • carlos anguiano

    carlos anguiano - 2014-03-27

    might be related to windows 8, i don't get the error on a secondary machine running windows 7....
    i'm going to uninstall max and reinstall and try pushing things out again....

     
  • jarrys

    jarrys - 2014-03-27

    The error is still there yet installing the new relase!

    Carlos, I'm running windows 7 64b

     
  • Hendricks

    Hendricks - 2014-03-27

    I would guess you have the wrong dlls being loaded. I would guess its loading the msvc2008 version of the dlls.

    Try installing C:\blur\installers\2014-03-20\blur_python_64_msvc2010.exe into scripts
    MAXDir\scripts\python\site-packages. This folder should have a PyQt4 and blur folder.

     
    • carlos anguiano

      carlos anguiano - 2014-03-27

      Hmmm I'm not sure about that...
      When I launch max and I monitor the 3ds max 2014 process...
      I can see it loading the caddies.gup and then immediately loading the new qtcore4.dll from the max root...

      Also if I was unintendedly loading the mvs2008 dll's qt wouldn't work at all no?
      What .dll's is the ._Stone.pyd trying to load?
      I could try and monitor max and see what folders it's searching...
      Cheers,
      Los

       
    • jarrys

      jarrys - 2014-03-27

      unfortunately didn't work for me!

       

      Last edit: jarrys 2014-03-27
  • Hendricks

    Hendricks - 2014-03-27

    We use windows 7 64bit at blur.

     
  • rkiga

    rkiga - 2014-04-04

    Windows 7 64 with latest updates

    Tried installing both of these:
    BlurOffline_python27_2013-12-05_install_15445_64
    BlurOffline_python27_2014-03-20_install_16281_64

    on both of these installs:
    3DSMax 2014 64 Service Pack 3
    3DSMax Design 2014 64 Service Pack 5

    I first get this error: https://code.google.com/p/blur-dev/issues/detail?id=25
    (so I followed the last post and renamed from .dlm to .dlx)

    Then I get Runtime Error R6034 and 3DSMax freezes and needs to end process.

    I copied the dlls in \bin\qt_bak\ to the root 3dsmax install folder.

    My \MAXDir\scripts\python\site-packages\ did not have PyQt4 and blur folders. So I tried copying the entire contents of the blur site-packages folder to the MAXDir one. Still the same C library Runtime Error R6034

     
  • Hendricks

    Hendricks - 2014-05-04

    I had access to two machine that was generating this error on startup and crashing. In this case it seems to be a problem with pywin32(import win32com). A while ago I finally figured out why we rarely were getting notified of error messages in softimage. It was because pywin32 is set up to replace sys.stdout and sys.stderr if it is not a instance of their class. I added support for it to our logger, and pywin32 was also being used in a couple of other places. When pywin32 is imported max would crash. I'm not sure why this computer has this problem when all of Blur's computers do not have this problem. For now I removed the blurdev imports of pywin32 when using max. This wont fix any tools that use pywin32, but it will at least let you use treegrunt if you have this problem.

    Here is a diff of the blurdev files I modified to get it working. I will be merging the changes into our code so future builds will have it. Hopefully I will have access to a machine with the problem so I can figure out exactly why our code is having problems with pywin32. I have seen similar behavior in Fusion, Motion Builder so hopefully we will be able to get the root problem fixed.

    Index: __init__.py
    ===================================================================
    --- __init__.py (revision 15715)
    +++ __init__.py (working copy)
    @@ -20,7 +20,6 @@
    
     from PyQt4.QtGui import QMainWindow, QDialog, QVBoxLayout, QApplication, QWizard, QMessageBox
     from PyQt4.QtCore import Qt
    -import blur.Stone
    
     #TODO: It is probably unnecessary to import most of these subpackages in the root package.
     import blurdev.version
    @@ -122,12 +121,7 @@
            # create the core and application
            if not core:
                    from blurdev.cores import Core
    -               objectName = None
    -               _exe = os.path.basename(sys.executable).lower()
    -               # Treat designer as a seperate core so it gets its own prefrences.
    -               if 'designer' in _exe:
    -                       objectName = 'designer'
    -               core = Core(objectName=objectName)
    +               core = Core()
                    application = core.init()
    
    @@ -181,6 +175,11 @@
                    # use the instance method if requested
                    widget = ctor.instance()
            else:
    +
    +               # show a splash screen if provided
    +               if splash:
    +                       splash.show()
    +
                    # Handle any url arguments that were passed in using the environment.
                    urlArgs = os.environ.pop('BDEV_URL_ARGS', None)
                    oldkwargs = copy.copy(kwargs)
    @@ -213,8 +212,8 @@
                            # If url arguments are passed in that the tool doesn't accept, remove them.
                            widget = launchWidget(ctor, args, oldkwargs)
    
    -       if splash:
    -               splash.finish(widget)
    +               if splash:
    +                       splash.finish(widget)
    
            # If the passed in ctor is not a Dialog or Window, wrap it in a dialog
            # so that it displays correctly.  It will get garbage collected and close
    @@ -337,7 +336,7 @@
                            widget.setGeometry(geo)
    
    -def resourcePath(relpath=''):
    +def resourcePath(relpath):
            """
            Returns the full path to the file inside the blurdev\resource folder
            :param relpath: The additional path added to the blurdev\resource folder path.
    @@ -374,6 +373,10 @@
                           fooBar, the associated appId should be *Blur.FooBar*.
                           Defaults to *Blur*.
            """
    +       try:
    +               import blur.Stone
    +       except ImportError:
    +               return False
            if hasattr(blur.Stone, 'qSetCurrentProcessExplicitAppUserModelID'):
                    blur.Stone.qSetCurrentProcessExplicitAppUserModelID('%s.%s' % (prefix, id))
                    return True
    Index: cores/__init__.py
    ===================================================================
    --- cores/__init__.py   (revision 15173)
    +++ cores/__init__.py   (working copy)
    @@ -1,26 +1,34 @@
     """ Defines the different core systems for the blurdev
     """
    
    +import sys
    +import os
    +
     Core = None
    
    +_exe = os.path.basename(sys.executable).lower()
    +
    +# initialize the system for Motion Builder
    +if 'motionbuilder' in _exe:
    +       try:
    +               from motionbuildercore import MotionBuilderCore as Core
    +       except:
    +               pass
    +
     # initialize the system for 3d Studio Max
    -try:
    -       from studiomaxcore import StudiomaxCore as Core
    -except:
    -       pass
    +elif 'max' in _exe:
    +       try:
    +               from studiomaxcore import StudiomaxCore as Core
    +       except:
    +               pass
    
     # initialize the system for Softimage
    -try:
    -       from softimagecore import SoftimageCore as Core
    -except:
    -       pass
    +elif 'xsi' in _exe:
    +       try:
    +               from softimagecore import SoftimageCore as Core
    +       except:
    +               pass
    
    -# initialize the system for Motion Builder
    -try:
    -       from motionbuildercore import MotionBuilderCore as Core
    -except:
    -       pass
    -
    -# import the default core
    -if not Core:
    +if Core is None:
    +       # import the default core
            from core import Core
    Index: gui/windows/loggerwindow/console.py
    ===================================================================
    --- gui/windows/loggerwindow/console.py (revision 15715)
    +++ gui/windows/loggerwindow/console.py (working copy)
    @@ -20,16 +20,19 @@
     from blurdev.tools import ToolsEnvironment
     import blurdev.gui.windows.loggerwindow
    
    +SafeOutput = None
    +class Win32ComFix(object):
    +       pass
     # win32com's redirects all sys.stderr output to sys.stdout if the existing sys.stdout is not a instance of its SafeOutput
     # Make our logger classes inherit from SafeOutput so they don't get replaced by win32com
    -try:
    -       from win32com.axscript.client.framework import SafeOutput
    -       class Win32ComFix(SafeOutput):
    +# This is only neccissary for Softimage
    +if blurdev.core.objectName() == 'softimage':
    +       try:
    +               from win32com.axscript.client.framework import SafeOutput
    +               class Win32ComFix(SafeOutput):
    +                       pass
    +       except ImportError:
                    pass
    -except ImportError:
    -       SafeOutput = None
    -       class Win32ComFix(object):
    -               pass
    
     emailformat = """
     <html>
    
     
  • carlos anguiano

    carlos anguiano - 2014-09-20

    awesome, when do you think we'll see a new build?
    also, did you guys get around fixing the startup.ms for max that was in the last installer? it was still using the python namespace instead of the new pymax :D

     
  • Fernando Jorge

    Fernando Jorge - 2016-02-10

    Hi guys, I've registered just to post this. If anyone still having this problem a friend was getting this error when configuring the Workgroups on the Softimage 2015 and after many tries (install every Redistributable Package, change System Format, System Locale etc), we found that Softimage was trying to search the msvcr90.dll on two folder that exist on PATH. The first one was from java installation and another from some Intel driver. Apparently it was the problem. After removed these two everything worked fine. I'm not sure if the java or the driver package will be upset but everything is working till now. :)

    I hope this could help.

    Where I've found the suggestion:
    http://sourceforge.net/p/pywin32/bugs/569/

     

Log in to post a comment.