locked
WACK 3.0 Supported API test failed RRS feed

  • Question

  • We are migrating our app to Windows 8.1 and unfortunately our app failed to pass WACK 3.0 in supported API test. Since we have submited 11 releases of our app so far to Windows store, we believe it can successfully pass WACK 2.2 on Windows 8. We are assure the source code files in two machines are the same and cannot find the cause of the failure. Could someone help? Thanks in advance. By the way, we use Visual Studio 2013 Express Preview on a Windows 8.1 Preview machine.

    ?API __CppXcptFilter in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __clean_type_info_names_internal in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __crtTerminateProcess in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __crtUnhandledException in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __dllonexit in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __iob_func in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _amsg_exit in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _calloc_crt in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _crt_debugger_hook in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _except_handler4_common in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _initterm in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _initterm_e in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _lock in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _malloc_crt in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _onexit in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _snprintf in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _unlock in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _wassert in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _wfopen in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API _wremove in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API atof in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API atoi in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API calloc in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fclose in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fflush in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fopen in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fprintf in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fread in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API free in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fseek in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API ftell in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API fwrite in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API isalpha in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API islower in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API malloc in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API memcpy in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API memmove in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API memset in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API qsort in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API realloc in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API remove in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API sprintf in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API strcspn in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API strncmp in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API strncpy in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API toupper in msvcr120.dll is not supported for this application type. shapelib.dll calls this API.
    ?API __CppXcptFilter in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __clean_type_info_names_internal in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __crtTerminateProcess in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __crtUnhandledException in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __dllonexit in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __iob_func in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _amsg_exit in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _calloc_crt in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _close in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _crt_debugger_hook in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _errno in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _except_handler4_common in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _fstat64i32 in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _initterm in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _initterm_e in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _lock in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _lseeki64 in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _malloc_crt in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _onexit in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _open in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _read in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _unlink in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _unlock in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _wassert in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API _write in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API calloc in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API exit in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API fflush in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API fprintf in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API fputc in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API free in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API isspace in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API malloc in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API memchr in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API memcpy in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API memmove in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API memset in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API realloc in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API strchr in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API strerror in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API strncmp in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API strncpy in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API vfprintf in msvcr120.dll is not supported for this application type. netcdf.dll calls this API.
    ?API __CppXcptFilter in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API __clean_type_info_names_internal in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API __crtTerminateProcess in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API __crtUnhandledException in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API __dllonexit in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API __iob_func in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _amsg_exit in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _calloc_crt in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _crt_debugger_hook in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _except_handler4_common in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _gmtime64 in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _initterm in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _initterm_e in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _libm_sse2_pow_precise in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _lock in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _malloc_crt in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _onexit in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _setjmp3 in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API _unlock in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API atof in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API fflush in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API floor in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API fprintf in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API fread in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API free in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API frexp in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API fwrite in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API longjmp in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API malloc in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API memcpy in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API memset in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    ?API modf in msvcr120.dll is not supported for this application type. libpng15.dll calls this API.
    

    Monday, September 9, 2013 3:30 PM

Answers

All replies

  • From what you have posted you are building with an MSVC runtime that is not supported.

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Monday, September 9, 2013 7:38 PM
    Moderator
  • From what you have posted you are building with an MSVC runtime that is not supported.

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)


    Hi Jeff, thank you for your quick response.
    Could you elaborate a little more to the issue or give some hints to my questions below?
    Our app uses some third-party libraries such as libpng, shapelib and so on. We build with libraries with VS 2012 (VS 2013 Preview resp.) on Windows 8 (8.1 Preview resp.). I use Dependency Walker to view the the dll files of these libraries and find for any .dll file (such as libpng15.dll), Dependency Walker gives identical output with the exception of MSVCR version (MSVCR110.dll in VS2012 and MSVCR120.dll in VS2013). So I am puzzled why our app passes WACK v2.2 test on Windows 8 but fails WACK 3.0 on Windows 8.1.
    In your reply you mentioned MSVC runtime, Do you mean MSVC runtime is just MSVCR120.dll? Is MSVCR120.dll or the exported functions (fread, free, malloc etc.) in MSVCR120.dll not supported?
    Tuesday, September 10, 2013 12:42 AM
  • I tried your method but it does not work. It seems that the VC runtime dependency has been implicitly defined in the project  but I could not find a place to configure it. The content I added to the manifest is

    <Dependencies>
        <PackageDependency Name="Microsoft.VCLibs.120.00" MinVersion="12.0.0.0" />
     </Dependencies>

    Wednesday, September 11, 2013 1:01 PM
  • Hi Leonard,

    Most likely one of your third party libraries is including or built using the older VC libs (the ones that the WACK test is failing for).  You can engage those third parties for assistance.

    Jeff


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Wednesday, September 11, 2013 1:15 PM
    Moderator
  • Thanks again Jeff.

    I'll remove those 3-rd party dependency libraries from my project to trace the source of the WACK error. But I still do not understand what the sentence

    "API memcpy in msvcr120.dll is not supported for this application type. libpng15.dll calls this API."

    mean. Why is memcpy not supported?

    In addition, as I build libpng library with VS Express 2013 Preview on Win8.1 Preview, what's the change of "using the older VC libs"?
     

    Wednesday, September 11, 2013 3:14 PM
  • Most likely one of your third party libraries is including or built using the older VC libs (the ones that the WACK test is failing for).  You can engage those third parties for assistance.

    Using Dependency Walker, I find that the DLLs failing for WACK test all reference MSCVR120.DLL, whereas those DLLs pass WACK test all reference MSCVR120_APP.DLL. So the question is how to build a DLL that reference MSCVR120_APP.DLL, instead of MSCVR120.DLL? If I use NMAKE instead of VS IDE to build DLL, what is extra work? Thanks!
    Thursday, September 12, 2013 4:06 PM
  • Hi Leonard,

    MSVCR120.dll is for Desktop Windows Apps.  MSVCR120_APP.dll is for Windows Store apps.

    If you compare the preprocessor definitions of the successful vs. failed libraries you should be able to spot the differences.  You can also create a C++ WinRT component and look at the #defines and preprocessor definitions.

    If you still cannot find the differences you can post your project on SkyDrive and we can have a look for you?  If you cannot do that you can open a support case for some 1 on 1 assistance.

    Jeff


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Thursday, September 12, 2013 4:20 PM
    Moderator
  • Thanks,

    I'll try to find the differences. I thought it would be better if someone from VC++ team may write an article explaining how to build a library that references MSVCR120_APP.dll  from legacy code.

    As for the skydrive, whose skydrive can I post my project? If I use mine, then how can you access my skydrive?

    Thursday, September 12, 2013 4:45 PM
  • If you compare the preprocessor definitions of the successful vs. failed libraries you should be able to spot the differences.  You can also create a C++ WinRT component and look at the #defines and preprocessor definitions.

    If you still cannot find the differences you can post your project on SkyDrive and we can have a look for you?  If you cannot do that you can open a support case for some 1 on 1 assistance.

    I've tried a couple of compiler/linker options including /D
    "WINAPI_FAMILY=WINAPI_FAMILY_APP", but still no luck.

    I've uploaded the project file named shapelib-1.3.0.zip to the public folder of my skydrive. When you uncompress this file, you may find a file named Makefile.vc.win8. I use this file to build the project.

    $ nmake /f Makefile.vc.win8

    Please take a look at the file, thank you very much.


    • Edited by Leonard Friday, September 13, 2013 4:23 AM
    Friday, September 13, 2013 4:23 AM
  • Those options are listed here for your reference: http://msdn.microsoft.com/en-us/library/windows/apps/hh700129.aspx


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, September 13, 2013 11:37 AM
    Moderator
  • Hi Leonard,

    You can send me a link to your skydrive share from here: http://blogs.msdn.com/jpsanders/contact.aspx


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, September 13, 2013 11:38 AM
    Moderator
  • You can send me a link to your skydrive share from here: http://blogs.msdn.com/jpsanders/contact.aspx

    I've just sent the link.
    Friday, September 13, 2013 12:40 PM
  • Here is a sample of the flags you want to use:

    /MP /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /I"C:\Users\jsanders\Documents\Casefiles\Lib1\Lib1\" /I"Generated Files\" /I"Release\" /ZW:nostdlib /Zi /Gm- /O2 /sdl /Fd"Release\vc110.pdb" /fp:precise /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MD /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\Lib1.pch"

    You may not be using precompiled headers.

    You also want to ensure you have this include in your library at the top level:

    #pragma once
    
    #include <SDKDDKVer.h>
    
    #define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
    // Windows Header Files:
    #include <windows.h>
    


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, September 13, 2013 1:11 PM
    Moderator
  • Hi Jeff,

    Thank you for your further help. One way that works is to create a Windows Store DLL project and manullya add relevant source files to the project. But I still could not find out a method that works for nmake. Did you successfully build my code with nmake in command prompt?


    • Edited by Leonard Saturday, September 14, 2013 3:34 AM update progress on the issue
    Friday, September 13, 2013 4:48 PM
  • I will take a look at this today!

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Thursday, September 19, 2013 1:10 PM
    Moderator
  • These flags allowed me to build and pass the WACK test:


    #CFLAGS = /DSHPAPI_CALL=__stdcall
    CFLAGS = /MP /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /DSHAPELIB_DLLEXPORT

    /DWINAPI_FAMILY=WINAPI_FAMILY_APP
    LNFLAGS = /MACHINE:X86 /DYNAMICBASE /NXCOMPAT /APPCONTAINER

    I created a simple blank C++ XAML store app and included the library and a call into the library.

    If this does not resolve you issue there is something else in your build environment affecting the outcome of the WACK test.  You can get 1 on 1 help for this issue by creating a support case if you wish to pursue this further.

    Thanks!

    Jeff


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Thursday, September 19, 2013 2:27 PM
    Moderator
  • These flags allowed me to build and pass the WACK test:


    #CFLAGS = /DSHPAPI_CALL=__stdcall
    CFLAGS = /MP /GS /GL /analyze- /W3 /Gy /Zc:wchar_t /DSHAPELIB_DLLEXPORT

    /DWINAPI_FAMILY=WINAPI_FAMILY_APP
    LNFLAGS = /MACHINE:X86 /DYNAMICBASE /NXCOMPAT /APPCONTAINER

    I created a simple blank C++ XAML store app and included the library and a call into the library.

    If this does not resolve you issue there is something else in your build environment affecting the outcome of the WACK test.  You can get 1 on 1 help for this issue by creating a support case if you wish to pursue this further.

    I've followed your steps and done some experiments, and found this: if I add the shapelib.dll to the project and set it as content, the app won't pass WACK 3.0. If I just copy the shapelib.dll to the AppX directory, the app will pass the test. Could you please explain what's the magic behind this?

    Sunday, September 22, 2013 3:36 PM
  • Hi Leonard,

    I could make some guesses but in order to proceed you will need to create a support case to get some good 1 on 1 help and really get to the root of this issue.

    I will mark this as answered and lock this thread at this time.

    Jeff


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Tuesday, September 24, 2013 3:41 PM
    Moderator