X-Git-Url: http://git.kpe.io/?p=uffi.git;a=blobdiff_plain;f=examples%2Fc-test-fns.c;h=e8cdcd18e6348c93baf67d15dbc232371a07d469;hp=05244b80601358519d072453e65da11a8763d399;hb=b86fdf882156aa45dc6e8e93a158dedf506f4233;hpb=d5e4894a4d66611f1a585cbe53c692af8fabff5d diff --git a/examples/c-test-fns.c b/examples/c-test-fns.c index 05244b8..e8cdcd1 100644 --- a/examples/c-test-fns.c +++ b/examples/c-test-fns.c @@ -1,36 +1,41 @@ /*************************************************************************** * FILE IDENTIFICATION - * + * * Name: c-test-fns.c * Purpose: Test functions in C for UFFI library * Programer: Kevin M. Rosenberg * Date Started: Mar 2002 * - * CVS Id: $Id: c-test-fns.c,v 1.2 2002/03/21 04:04:45 kevin Exp $ - * - * This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg + * This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg * - * UFFI users are granted the rights to distribute and use this software - * as governed by the terms of the Lisp Lesser GNU Public License - * (http://opensource.franz.com/preamble.html), also known as the LLGPL. - * These variables are correct for GCC * you'll need to modify these for other compilers ***************************************************************************/ -#ifdef WIN32 +#if defined(WIN32)||defined(WIN64) #include + +BOOL WINAPI DllEntryPoint(HINSTANCE hinstdll, + DWORD fdwReason, + LPVOID lpvReserved) +{ + return 1; +} + +#define DLLEXPORT __declspec(dllexport) + +#else +#define DLLEXPORT #endif #include #include +#include /* Test of constant input string */ +DLLEXPORT int -#ifdef WIN32 -WINAPI -#endif cs_count_upper (char* psz) { int count = 0; @@ -38,19 +43,17 @@ cs_count_upper (char* psz) if (psz) { while (*psz) { if (isupper (*psz)) - ++count; + ++count; ++psz; } return count; - } else + } else return -1; } /* Test of input and output of a string */ +DLLEXPORT void -#ifdef WIN32 -WINAPI -#endif cs_to_upper (char* psz) { if (psz) { @@ -62,10 +65,8 @@ cs_to_upper (char* psz) } /* Test of an output only string */ +DLLEXPORT void -#ifdef WIN32 -WINAPI -#endif cs_make_random (int size, char* buffer) { int i; @@ -73,6 +74,16 @@ cs_make_random (int size, char* buffer) buffer[i] = 'A' + (rand() % 26); } - - +/* Test of input/output vector */ +DLLEXPORT +void +half_double_vector (int size, double* vec) +{ + int i; + for (i = 0; i < size; i++) + vec[i] /= 2.; +} + + +