Page 1 of 2

php_bcompiler.dll with API=20090626

PostPosted: 10. June 2010 02:57
by sys7
Hello,

I have XAMPP 1.7.3 (Windows)
and it does not have php_bcompiler.dll.

So, I downloaded it and I only got it with API=20060613

I cannot run Bcompiler because I keep receiving this warning:

Warning

PHP Startup: bcompiler: unable to initialize module
Module compiled with API=20060613
PHP compiled with module API=20090626
These options need to match

Could somebody please let me know where I can download
php_bcompiler.dll with API=20090626?

Thanks

sys

Re: php_bcompiler.dll with API=20090626

PostPosted: 10. June 2010 04:44
by JonB
That version was compiled with VisualC 2008 apparently. You need a version of it that was compiled with the Visual Studio 6 compiler to work with the current XAMPP.

Read my post here:

viewtopic.php?f=16&t=40825

"If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

If you are using PHP with IIS you should use the VC9 versions of PHP

VC6 Versions are compiled with the legacy Visual Studio 6 compiler

VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed

Do NOT use VC9 version with apache.org binaries "

http://windows.php.net/download

Good Luck
8)

Re: php_bcompiler.dll with API=20090626

PostPosted: 13. June 2010 21:33
by cgarcia109
How php implements plugins (extensions) it doesnt support pluging versioning so you have to build extensions for every new php version. You CANT use extensions compiled for an older version of php.
xampp actually include dev includes/libs to compile extra extensions in
<your-xampp-dir>/php/dev/

you need to get bcompiler source code http://pecl.php.net/package/bcompiler
a pair of missing includes in xampp php/dev/include/ext
ext/standard/info.h
ext/standard/file.h
you can get from php source code http://www.php.net/get/php-5.3.2.tar.gz/from/a/mirror

You need Microsoft Visual Studio (express should works) and touch a bit the project file to point to the correct include libs directories.
And build bcompile of course

Take note that bcompile is actually beta.
If you only need to speed up your php scripts you could just enable eAccelerator extension in your php.ini. eAccelerator actually catches php bytecode to save compilation time.
If you need to protect your code, you could just use an php obfuscator. That would hide enough details about your code.

Anyway if you still need bcompiler here it is compiled for xampp 1.7.3 latest:
http://www.megaupload.com/?d=WI5QSZVZ
place in ext folder, restart xampp ...
Use at your own risk:
1- bcompiler is beta
2- is a dll and you shouldnt trust programs from untrusted sources(use an antivirus)

I recommend you using bcompiler gui http://www.trustfm.net/GeneralTools/SoftwareBcompilerGUI.php?b2=1
and make a backup of your project just in case.

Re: php_bcompiler.dll with API=20090626

PostPosted: 13. June 2010 22:33
by JonB
Thanks for your very clear explanation and the tips you offered. You indirectly answered several non-topic related questions that have been swimming around in my head. Many thanks

8)

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 15:16
by darknight
Hi,
I have the same problem with this library but I don't hunderstand how to compile it.
Can you explain it to me?

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 17:17
by JonB
cgarcia109 has already provided a compiled DLL for XAMPP 1.7.3

Anyway if you still need bcompiler here it is compiled for xampp 1.7.3 latest:
http://www.megaupload.com/?d=WI5QSZVZ
place in ext folder, restart xampp ...
Use at your own risk:


That covers it, doesn't it???

IF you still want to compile -
Read this FAQ and AFAIK - you will need the Microsoft Visual C V6 compiler found in Visual Studio 6.

I want to use extensions for PHP that are not included with XAMPP.

http://bravo.newnetenterprises.com/word ... -i-do-that

Good Luck
:)

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 17:28
by darknight
I had it, but I don't hunderstand how to compile it.

I download the source from http://pecl.php.net/package/bcompiler and the php last source (5.3.3)

I open the bcompiler.dsp, add all the path to the library required ('cause I got a lot of "file not found" error), which are:
\xampp\php\dev\include\main
\xampp\php\dev\include\TSRM
\xampp\php\dev\include\Zend
\php-5.3.3\ext\standard (the path to php source)

but when I try to compile I get others syntax errors in xampp\php\dev\include\main\streams\php_stream_transport.h

When I try to use the dll downloaded from the link above and I try to start apache from xampp control I get a "msvcr100.dll not found"

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 18:06
by JonB
When I try to use the dll downloaded from the link above and I try to start apache from xampp control I get a "msvcr100.dll not found"


you probably need the Visual C support files (CGarcia would have had them as the compiler was installed)

http://msdn.microsoft.com/en-us/library/ms235299.aspx

Remember Google is your friend - :mrgreen:

that will likely fix your DLL error

What were you trying to compile with????

Good Luck

8)

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 18:18
by darknight
JonB wrote:What were you trying to compile with????

Visual studio 6 enterprise edition :shock:

JonB wrote:you probably need the Visual C support files (CGarcia would have had them as the compiler was installed)

But when I will deploy the compiled application (with the php_bcompile.dll) the user must install it in theyr pc, too?

EDIT: I go to this link, http://msdn.microsoft.com/en-us/library/ms235299.aspx, but I don't hunderstand what I must download.

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 18:44
by JonB
Normally the 'correct' redistributable run-times (support libraries) will make things work the way the developer intended. Really - the right person to ask is 'cgarcia109'. I think Sr/Sra Garcia probably made the incorrect assumption about XAMMP end-user knowledge. Of course this is a pretty advanced topic, so those assumptions look very valid - we are talking about code optimzation and compilers. AFAIK - the C++ compiler doesn't build an installer unless instructed. So the DLL is a raw package - no automated installation of support files. Thus - if you choose to make the compiled code available, you will need to understand the process and document it.

http://support.microsoft.com/kb/259403

Beyond this information, its really a discussion about learning Microsoft's development systems. The best person to query is the provider of the compiled code OR you could try to reach BigWetDog (here on ApacheFriends), or - even better - start familarizing yourself with the many free MS developer forums.

Good Luck
:)

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 19:05
by darknight
Seems to me that I have not good luck :lol:

I download the package from microsoft website and run it... it extract a exe file inside a folder.
When I run this file nothing happened, so I extract its content using 7zip and then using right click on the ini file I chose "install"
It copy some file, but when I try to run again apache using xampp control I get the same error "msvcr100.dll not found"
:cry:

I hope someone would rebuild and add this to the next release of Xampp.

Re: php_bcompiler.dll with API=20090626

PostPosted: 08. November 2010 23:53
by JonB
its because he used the Visual Studio 2010 compiler. Bad server geek - I shoulda known that was the pattern.

I checked the output of the V6 runtime - no 'msvcr100.dll' only 'msvcrt.dll'.

Code: Select all
[CopyFileSection.NT]
asycfilt.dll,,,96
atl.dll,atlu.dll,,96
comcat.dll,,,96
mfc42.dll,,,96
mfc42u.dll,,,96
msvcp60.dll,,,96
msvcirt.dll,,,96
msvcrt.dll,,,96
oleaut32.dll,,,96
olepro32.dll,,,96
stdole2.tlb,,,96


I'm sure he knows way more than I on this - but I understand you can make compilers output 'backward compatible' code by correctly specifying the parameters, and I am guessing that is the case here.

this is about your exact problem -
http://social.msdn.microsoft.com/Forums ... 99c8703438

Good Luck - I have fingers crossed and thumbs pressed (Daumen drücken)

:)

Re: php_bcompiler.dll with API=20090626

PostPosted: 09. November 2010 00:13
by darknight
Ah, I was afraid of that.
I hope to have a version compiled with visual studio 6, not using .net version (2003, 2005, 2008, 2010) 'cause I want to give this package also to user using windows 2000 (me too have some windows 2000 workstation at home) and .net framework 3 (and above) cannot be installed on this machine.
And also I don't want user to install other software if they don't wont.

I sent 'cgarcia109' a pm asking help, hoping will reply.

I think all user need this dll compiled with vc6 (please someone help us).

Re: php_bcompiler.dll with API=20090626

PostPosted: 09. November 2010 16:44
by JonB
I can recommend what to search on, and understand -

Its all Apache dependent, because of the PHP as a module concept - it implies on Windows that the php is DLL that is called by Apache. (so tha drives what teh compilation options are I believe.

(JonB makes the little pile of stones that means therefore) - its the same as compiling Apache for Win32.

That line of research may turn up the answers, also read the php.org stuff about compiling.

You might also post the errors you got trying to compile, If your install on Visual Studio 6 Enterprise wasn't from original MS distribution Media, it may not be installed correctly with all the support files "it" needs.

Good Luck
:)

Re: php_bcompiler.dll with API=20090626

PostPosted: 23. December 2010 15:07
by cgarcia109
Yep, i used Visual Studio 2010. Should had compiled it with VS6. The Runtime dll VS6 come with any version of Windows.
Anyway you only need Visual C++ 2010 Runtimes:

x86 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a7b7a05e-6de6-4d3a-a423-37bf0912db84&displaylang=en
x64 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867&displaylang=en

Havent checked xampp in a while, if there has been any new xampp version with a new php version, unless something has changed, extensions need to be recompiled again.