The subject of C Run-Time depending on compilation option /MT, /MD
-------------------------------------------------------------------
Key: AXIS2C-722
URL: https://issues.apache.org/jira/browse/AXIS2C-722
Project: Axis2-C
Issue Type: Improvement
Components: build system (Windows)
Affects Versions: Current (Nightly)
Environment: OS: WindowsXP
Compiler : MSVC
Reporter: Atsushi Monna
I think Axis2/C has a problem about C Run-Time in windows.
I made a dll calling Axis2/C public function using file stream in axutil.
When I used this dll, access violation was occured.
In concretely,
I use the axutil_stream_t object created by axutil_stream_create_file(const
axutil_env_t *env, FILE *fp) in axutil_stream_read(). I caught a access
violation.
Reason is ...
The file pointer above can not use in this DLL(axutil.dll), because Axis2/C
builded with /MT option.
The relation between MSVC compliation option and C Run-Time Libraries is
indicated in this page.
http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx
The problem depending on C Run-Time Libraries is indicated in this page.
http://msdn2.microsoft.com/en-us/library/ms235460(VS.80).aspx
Every Axis2/C module has static C Run-Time in local. So, boundaries exist among
all.
To be valid the public function has file pointer argument in axutil, use /MD
compilation option for common C Run-Time (not exist boundaries) amonng all.
But this way is not enough. If the C Run-Time version depended Axis2/C modules
are defferent with the C Run-Time version depended module that calling Axis2/C
modules API, same problem will occur.
I think, complete solution for this problem is Axis2/C binary release builded
with /MD compilation option and specify C Run-Time Library version.
I hope above.
Depending C Run-Time version depend on build environment. For any user using
Axis2/C binary release, provide some binary release for every C Run-Time
versions. It is better I think.
If I cann't get Axis2/C binary release like this, I hope the lowest that
Axis2/C be clear the policy in a document for this problem.
・Axis2/C binary release builded using /MT compilation option.
・This modules has some problem depending C Run-Time Libraries.
・If you call Axis2/C module's API, you need to re-build Axis2/C using /MD
compilation option.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]