Скомпилировать DLL библиотеку в VS - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Хочу получить edrlib.dll и edrlib.lib. Для того чтобы откомпилировать библиотеку я создал в VS 6.0 новый пустой проект (динамически подключаемая библиотека) и подключил файлы edrlib.h и edrlib.c. edrlib.h
#define EXPORT extern "C" __declspec(dllexport)
 
EXPORT BOOL CALLBACK EdrCenterText (HDC, PRECT, PSTR);
edrlib.c
#include <windows.h.>
#include <string.h>
#include "edrlib.h"
 
int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
    return TRUE;
}
 
EXPORT BOOL CALLBACK EdrCenterText(HDC hdc, PRECT prc, PSTR pString)
{
    int iLength;
    SIZE size;
 
    iLength=strlen(pString);
    GetTextExtentPoint32(hdc, pString, iLength, &size);
 
    return TextOut(hdc, (prc->right - prc->left - size.cx)/2, (prc->bottom - prc->top - size.cy)/2, pString, iLength);
}
Когда пытаюсь скомпилировать получаю ну очень информативные ошибки:
--------------------Configuration: Lib - Win32 Debug--------------------
Compiling...
edrlib.c
c:\c++\vs projects\lib\edrlib.h(3) : error C2059: syntax error : 'string'
c:\c++\vs projects\lib\edrlib.c(10) : error C2059: syntax error : 'string'
Error executing cl.exe.

Lib.dll - 2 error(s), 0 warning(s)
те ругается оно на заголовок и реализацию моей функции EdrCenterText. Что это за странное описание ошибки от vs и как от неё избавиться (от ошибки, не от vs) ?

Решение задачи: «Скомпилировать DLL библиотеку в VS»

textual
Листинг программы
// GpearDLL.cpp : Defines the entry point for the DLL application.
//
 
#include "stdafx.h"
#include <string.h>
 
#ifdef __cplusplus 
#define EXPORT extern "C" __declspec (dllexport) 
#else 
#define EXPORT __declspec (dllexport) 
#endif //ввести
 
BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
                     )
{
    return TRUE;
}
 
EXPORT BOOL CALLBACK EdrCenterText(HDC hdc, PRECT prc, PSTR pString)
{
        int iLength;
        SIZE size;
 
        iLength=strlen(pString);
        GetTextExtentPoint32(hdc, pString, iLength, &size);
 
        return TextOut(hdc, (prc->right - prc->left - size.cx)/2, (prc->bottom - prc->top - size.cy)/2, pString, iLength);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5