Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
C::B Unable to start (0xc000007b) on win64/MinGW64 GCC 4.5.0
tyeken8:
Just as the title says, I built the wxMSW 2.8.10 and 2.9.0 and C::B on both of them successfully (with minor hacks in C::B srcs, mainly for the 64-bit pointers),
but then I got a "0xc000007b" error while tried running codeblocks.exe, like this.
I found sth. on the M$ Technet and knews that it means "The application or DLL is not a valid Windows image".
And one of my friends, Thynson, an professional GCC player, says that "There's something wrong with the ld in GNU binutils, attach '--enable-auto-image-base' flag on the ld may do", I've tried, but it didn't works.
He said that "you may try to del all the resources and recompile it". I created a tiny dummy project and built like this, IT WORKS.
So I guess that the Original Correct Image Base was ruined by the ".rsrc" segment (but I can do nothing to verify it, my PEiD can't recognize the PE32+ format), so maybe we can solve this problem by re-permutation the segments (of course some automated tools Eg. ld || dlltools is better)?
BTW, the C::B SVN 6272 x86 by MinGW GCC 4.5.0(built by Thynson) works fine on my machine. I created a bundle and pasted it on the web, you can have a try if you want.
http://a.md/cb
Wating for reply online... Thx.
Propagator:
Did you make sure that your manifest file contains the line
--- Code: ---processorArchitecture="amd64"
--- End code ---
instead of the usual 32-bit
--- Code: ---processorArchitecture="x86"
--- End code ---
If you specify the wrong processor architecture, windows will load the wrong version of comctl32.dll (if I remember correctly) and you'll get exactly the error you reported. You can check with dependency walker what dll's are loaded by your application.
Hope that helps...
oBFusCATed:
I think C::B doesn't work on 64bit Windows...
See this topic: http://forums.codeblocks.org/index.php/topic,11567.0.html
Also I think C::B is crashing with wx2.9.x, so try wx2.8 first
thynson:
Actually I am not sure but just tell him to try '--enable-auto-image-base'. Now the problem is clear, the CodeBlocks use a manifest for x86 other than x64. I have replaced the manifest file 'wx/include/wx/msw/wx.manifest' with amd64.manifest. And we have began the process of build. Waiting for our good news, plz. :D
tyeken8:
Well, a good news and a bad news.
The lastest C::B (SVN 6284) was build SUCCESSFULLY
BUT the startup.script doesn't work correctly.
It gave me a "Push(): could not create INSTANCE copy (check registration name)".
Following the both startup.script and this error message, I found:
1. this problem occurs when running the script "GetScriptingManager().RegisterScriptMenu()"
2. there's sth. wrong in sqplus. but when I got into, I encontered a macro.
--- Code: ---#define DECLARE_INSTANCE_TYPE_NAME_(TYPE,NAME) namespace SqPlus { \
inline const SQChar * GetTypeName(const TYPE & n) { return sqT(#NAME); } \
inline void Push(HSQUIRRELVM v,TYPE * value) { \
...
--- End code ---
I can't determine the TYPE rapidly, so I go to you for help.
Are there any readymade solutions, or I have to work out with it?
Thx.
Navigation
[0] Message Index
[#] Next page
Go to full version