labwindows und visual studio verhalten sich unterschiedlich bei der Funktion AnsiUpperBuff



  • hallo,

    #include <ansi_c.h>
    #include <windows.h>
    
    static int Test_function(char *sText);
    
    int main()
    {
    	Test_function("noserial");
    	return 0;
    }
    
    static int Test_function(char *sText)
    {
    
    	AnsiUpperBuff(sText, strlen(sText));
    	return 0;
    }
    

    diesen Code lässt sich problemlos in labwindows kompilieren und ausführen.

    in visual studio kommt es zu einer Zugriffverletzung bei Aufruf von AnsiUpperBuff.

    ich habe das problem so gelöst

    static int Test_function(char *sText)
    {
    	[b]char text_Temp[40] = {0x0};[/b]	
             [b]strcpy(text_Temp,sText);[/b]	
    AnsiUpperBuff(text_Temp, strlen(text_Temp));
    	return 0;
    }
    

    ich musste vorher den konstanten string in einem Buffer umkopieren und dann die Funktion übergeben. warum verhalten sich die zwei IDE so unterschiedlich? oder hat jemand eine Erklärung für dieses Vrhalten


Log in to reply