[go: up one dir, main page]

attempting to compile with MSVC in VScode

Hello,

I am attempting to compile and use this library through VScode, using MSVC. After some trial and error and adding this section near the top of ssfn.h, I was able to get the program to compile and run:

#ifdef _MSC_VER
    #define size_t
    #define _STRING_H_
    #define SSFN_memcmp
    #define SSFN_memset
    #define SSFN_realloc
    #define SSFN_free
    #define inline
    #ifdef _STDINT
        #define _STDINT_H
    #endif
#endif

I have created a small program condensed from test 2:

#include <stdio.h>
#include <stdint.h>
#define SSFN_IMPLEMENTATION
#define SSFN_DEBUGGLYPH
#include "ssfn.h"

ssfn_font_t *load_file(char *filename, int *size)
{
    char *fontdata = NULL;
    FILE *f;

    f = fopen(filename, "rb");
    if(!f) { fprintf(stderr,"unable to load %s\n", filename); exit(3); }
    *size = 0;
    fseek(f, 0, SEEK_END);
    *size = (int)ftell(f);
    fseek(f, 0, SEEK_SET);
    if(!*size) { fprintf(stderr,"unable to load %s\n", filename); exit(3); }
    fontdata = (char*)malloc(*size);
    if(!fontdata) { fprintf(stderr,"memory allocation error\n"); exit(2); }
    fread(fontdata, *size, 1, f);
    fclose(f);
    return (ssfn_font_t*)fontdata;
}

int main(void)
{
    int err, size;
    ssfn_t ctx;
    ssfn_font_t *font;
    ssfn_buf_t buf;

    int x,y;

    /* initialize the normal renderer */
    memset(&ctx, 0, sizeof(ssfn_t));
    buf.fg = 0xFF202020;
    buf.bg = 0;
    buf.x = 4; buf.y = 48;

    /* load and select a font */
    font = load_file((char*)"VeraR.sfn", &size);
    err = ssfn_load(&ctx, font);
    if(err != SSFN_OK) { fprintf(stderr, "ssfn load error: err=%d %s\n", err, ssfn_error(err)); exit(2); }

    err = ssfn_select(&ctx, SSFN_FAMILY_ANY, NULL, SSFN_STYLE_REGULAR | SSFN_STYLE_UNDERLINE, 20);
    if(err != SSFN_OK) { fprintf(stderr, "ssfn select error: err=%d %s\n", err, ssfn_error(err)); exit(2); }

    err = ssfn_render(&ctx, &buf, "i");
    if(err < 0) { fprintf(stderr, "ssfn render error: err=%d %s\n", err, ssfn_error(err)); exit(2); }

    printf("Memory allocated: %d %d\n", ssfn_mem(&ctx), (int)sizeof(ssfn_t));
    ssfn_free(&ctx);
    free(font);

    return 0;
}

This is my file structure:

Screenshot_2025-01-29_144945

The program compiles and runs, however, I only ever get this as an output:

ssfn load error: err=-2 Bad file format

I'm not sure where to go from here.