deploying Matlab C++ library to 64 bit
古いコメントを表示
I am currently developing a C++ program to interact with a C++ shared library created with Matlab R2007a compiler. Somehow, I cannot pass the initialization stage. First I call mclInitializeApplication(NULL,0)) and this goes ok. But when I call let's say MyFunctionInitialize() it fails.
Previously this was working but now when I deployed the application on a 64 - bit machine, it does not work anymore. Could the 64 bit environment be a problem?
Alina Badau
回答 (3 件)
Friedrich
2011 年 7 月 14 日
0 投票
Hi,
is the target OS of the same type like the OS where the DLL is compiled on? What error do you get?
Alina Badau
2011 年 7 月 14 日
0 投票
7 件のコメント
Friedrich
2011 年 7 月 14 日
You DLL is 32bit right? and the Win Server is 64bit? What error do you get? What do you mean with it fails?
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
For R2007a server 2008 wasn't a supported OS. Can you run the matrixdriver example from the ML doc? Maybe consider making a dependency walker profile and have a look why the initialisation step fails.
Alina Badau
2011 年 7 月 14 日
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
Dont run the dep walker on the shared lib. Compile everything into an EXE and then make a RUNTIME PROFILE of that exe. The right steps for this are:
i) choose File -> open and select your application
ii) choose Profile -> start profiling
iii) a window pops up
iv) press okay
v) your applications should start now
vi) after your application finished running investigate the log for hints what went wrong.
You can also:
vii) choose File -> save as
viii) upload the dwi file somewhere an post the link here
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
0 投票
Sounds like a missing redistributable package for Visual Studio 2010. Please install it on the target machine:
Copying DLLs from that package is not a good idea! Since you are running a 32bit application you need the 32bit redist. package.
14 件のコメント
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
Do you have the dep. walker profile for me so I can have a look?
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
I created a temporary adress: friedrich@spaml.de
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
The attachment hasn't reached me. Please upload it to some filehoster and post the link to it. E.g.:
http://www.wupload.com/
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
This is about your test application which works fine, right? I can see that you still have the DLL copied near the exe. Does your test exe works when deleting the copied DLL's?
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
Still the same. These DLLs are used
c:\inetpub\wwwroot\release\dropbox\dll output\MSVCR100D.DLL
c:\inetpub\wwwroot\release\dropbox\dll output\MSVCR80.DLL
Normally the entry should similar to:
c:\windows\winsxs\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4940_none_d08cc06a442b34fc\MSVCR80.DLL
Please completly delete the copied DLLs from the system and do not move it into a different folder.
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
So we are back to the actual issue. Missing DLLs on the system. Maybe I was wrong that the 32bit redist is needed. Please install the 64bit in addition:
http://www.microsoft.com/download/en/details.aspx?id=14632
Since the redist. packages provide the DLLs the error should vanish.
Alina Badau
2011 年 7 月 14 日
Friedrich
2011 年 7 月 14 日
It must be this issue. You can find some stuff in the internet talking about this missing DLL:
http://www.rhyous.com/2010/09/16/avoiding-the-msvcr100-dll-or-msvcr100d-dll/
カテゴリ
ヘルプ センター および File Exchange で Introduction to Installation and Licensing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!