Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-722

The subject of C Run-Time depending on compilation option /MT, /MD

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • build system (Windows)
    • None
    • OS: WindowsXP
      Compiler : MSVC

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            monna Atsushi Monna
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: