DLL Build-fout gerelateerd aan stringtype

3Ik leer hoe ik C ++ kan gebruiken om DLL's te schrijven en volg deze instructievideo om te krijgen ik ben begonnen. Ik volg precies, mijn code is:

defFile.def:

LIBRARY "square"
EXPORTS 
square

funct.cpp:

double __stdcall square(double & x) 
{
    return x*x;
}

Wanneer ik probeer te bouwen met VSE 2010, krijg ik de volgende foutmelding:

1>------ Build started: Project: square, Configuration: Debug Win32 ------
1>  defFile.def
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C2143: syntax error : missing ';' before 'string'
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I've tried adding #include at the top of defFile.def, but still get the same error. I'm sure this is something really simple.

0

2 antwoord

U hebt het .def-bestand aan uw project toegevoegd. Het wordt gecompileerd alsof het een broncodebestand is. Dat kan niet werken.

Klik met de rechtermuisknop op uw project, Eigenschappen, Linker, Invoer. Stel de Module Definition File-instelling in op "defFile.def".

0
toegevoegd
Omdat ik nieuw was in C ++, gebruikte ik F7 om te bouwen, toen ik Ctrl + F7 had moeten gebruiken. Dit compileerde, maar bouwde nog steeds niet het DLL-bestand. Ik moest met de rechtermuisknop op defFile en "Uitsluiten van Project" klikken.
toegevoegd de auteur Alec, de bron

Definitiebestand is geen C ++. Verwijder met behulp van namespace std; vanaf daar. Het is ook niet de bedoeling dat u het compileert, als u het wilt gebruiken, moet u de linkinstellingen voor het project wijzigen.

0
toegevoegd
@Alec: zie mijn bewerking. Het is niet de bedoeling dat je het compileert.
toegevoegd de auteur Cat Plus Plus, de bron
@Alec: compileer het .def-bestand niet. Het is geen bronbestand.
toegevoegd de auteur Cat Plus Plus, de bron
Sorry, het werd gesuggereerd in een andere Stack Overflow-vraag en probeerde dat te gebruiken om mijn probleem op te lossen. Ik krijg dezelfde foutmelding als die is verwijderd. Ik heb de vraag bijgewerkt om het oorspronkelijke probleem weer te geven zoals het was.
toegevoegd de auteur Alec, de bron
Bedoel je dat je defFile.def toevoegt aan de instelling Module Definitiebestand? Ik heb dat gedaan. En ik heb begrepen dat ik het project zal moeten compileren/bouwen om een ​​gecompileerd DLL-bestand te maken?
toegevoegd de auteur Alec, de bron