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]

Reply via email to