Menü
Ingyenes
becsekkolás
a fő  /  ÁLTAL / Forrásfájl C. Online, beleértve egy forrásfájlt C egy másikban? Mi lehet a fejléc fájlban

Forrásfájl C. Online, beleértve egy forrásfájlt C egy másikban? Mi lehet a fejléc fájlban

Forrás fájlok

Az SI program szövege több forrásfájlra osztható. A forrásfájl olyan szövegfájl, amely az egész programot vagy annak egy részét tartalmazza. A forrásprogram összeállításakor a forrásfájljainak mindegyikét külön kell összeállítani, majd a linker más fájlokkal társítva. A különálló forrásfájlokat egy forrásfájlba lehet kombinálni, amelyet egyetlen egész számként állítanak össze, az előfeldolgozó irányelv révén #Inlude..

A forrásfájl tartalmazhat az irányelvek holisztikus kombinációját, jelezve a fordítót, a hirdetéseket és a definíciókat. Az integritás alatt azt értjük, hogy az ilyen objektumok a funkciók, az adatstruktúrák vagy a hagyományos összeállítási irányelvek meghatározásaként teljes mértékben el kell találniuk az egyik fájlban, azaz nem indulhatnak el egy fájlban, de folytatódhatnak a másikban.

A forrásfájlnak nem kell a végrehajtott üzemeltetőket tartalmaznia. Néha kényelmes a változó definíciók elhelyezése egy fájlban, és más fájloknál, hogy ezeket a változóit hirdetésekkel használja. Ebben az esetben a változók meghatározása könnyen elérhetővé válik a kereséshez és módosításhoz. Ugyanezek a megfontolások, a megnevezett konstansok és makró definíciókat általában külön fájlokban gyűjtik össze, és tartalmazzák őket egy előfeldolgozó irányelven keresztül. #Inlude. Azokban a forrásfájlokban, amelyekben szükségesek.

Megjegyzés A fordító általában csak a forrásfájl egyes részeire vonatkozik. Az utasítások által meghatározott fordító konkrét intézkedéseit az SI nyelvi fordító konkrét végrehajtásával határozzák meg.

A következő példában a forrásprogram két forrásfájlból áll. Funkciók fő. és max Külön fájlokban jelenik meg. Funkció fő. használja a funkciót max a végrehajtás folyamatában.

/ * Forrásfájl 1 - Main * /

extern int max (int, int); / * Jellemző funkció * /

main () / * Funkció meghatározása * /

int w \u003d egy, x \u003d kettő, y \u003d három;

/ * Forrásfájl 2 - max * /

iNT MAX (A, B) / * Funkció meghatározása * /

Az első forrásfájl funkcióban max bejelentett, de nem meghatározott. Az ilyen hirdetési funkciót előzetesen nevezik; Lehetővé teszi a fordítónak, hogy ellenőrizze a fellebbezést a funkcióhoz, mielőtt meghatározná. A funkció meghatározása fő. Funkcióhívásokat tartalmaz max.

A szimbólummal kezdődő sorok az előfeldolgozó irányelvek. Az irányelvek jelzik az előfeldolgozót, hogy az első forrásfájlban kell cserélni az első forrásfájlban a megfelelő értékeket. Az irányelv területe nem vonatkozik a második forrásfájlra.



Az összeszerelési környezetétől függően (nem adja meg), észleli, hogy pontosan működik, ahogy akarja.

Azonban sok környezet van (mind az IDE, mind a sok manuálisan megmunkált makefile), amelyek a kompilációra várnak * .c - Ha ez megtörténik, akkor valószínűleg a karakterek megkettőzésének köszönhetően a linker hibáival találkozik.

Általában kerülni kell ezt a gyakorlatot.

Ha be kell kapcsolnia a forrás bekapcsolását (és általában kerülni kell), használja a fájl másik fájlt.

A C fájl másik fájlba való engedélyezése törvényes, de nem megfelelő, ha biztosan nem tudja, miért csinálod, és mit akarnak elérni.
Szinte magabiztos vagyok, hogy ha egy okból közzéteszi, akkor, amely szerint a kérdésedet közölni fogják a közösséggel, találsz egy másik megfelelő módját a cél eléréséhez (figyeljen "szinte", mivel lehetséges, hogy ez a döntés, a kontextus miatt).

By the way, hiányzott a kérdés második részét. Ha a C fájl engedélyezve van egy másik fájlban, és ugyanakkor a projektben szerepel, akkor valószínűleg találkozik a karakterek duplikálásával, miért az objektumkötés, azaz ugyanazt a funkciót kétszer definiálják (ha csak nem statikusak ).

A C nyelv nem tiltja meg az ilyen típusú #include-t, de a kapott fordítási egységnek továbbra is érvényes C.

Nem tudom, melyik programot használja az s.prj fájlt. Ha olyan "make" vagy vizuális stúdiót használsz, vagy valami mást, csak győződjön meg róla, hogy telepíti azokat a fájlok listáját, amelyeket össze kell állítani anélkül, hogy nem lehet önállóan összeállítani.

Használhatja a GCC-fordítót Linuxban, hogy két fájlt köthessen egy kimenettel. Tegyük fel, hogy két C-fájlja van, amelyek közül az egyik a "main.c", a másik pedig "support.c". Így a kettő összekapcsolására irányuló parancs

Gcc main.c support.c -o main.out

Ez a két fájl egy main.out kimenethez kapcsolódik. A kimeneti parancs elindításához lesz

./main.out.

Ha a SAID.C funkciót használja, amelyet a Support.c fájlban jelent meg, akkor leginkább a külső tárolási osztályt is fel kell tüntetnie.

Helyesen használják, hasznos módszer lehet.

Tegyük fel, hogy bonyolult kritikus alrendszere van egy meglehetősen kis nyilvános interfésszel és sok nem realizált végrehajtási kóddal. A kód több ezer sorig működik, több száz magánfunkció és egy kicsit magán adatok. Ha nem triviális beépített rendszerekkel dolgozik, akkor valószínűleg gyakran megbirkózik ezzel a helyzetgel.

A döntése valószínűleg többszintű, moduláris és felszabadítható, és ezek a szempontok kényelmesen képviselhetők és megerősíthetők az alrendszer különböző részeinek különböző fájljainak kódolásával.

A C-vel sokat elveszíthetsz. Szinte minden eszköz tisztességes optimalizálást biztosít egyetlen összeállítási egység számára, de nagyon pesszimistikailag utalnak valami bejelentett extern.

Ha mindent egy forrásmodulba teszel, akkor -

    A termelékenység és a méretkód javítása - Sok esetben a függvényhívások beépülnek. Még Inlay nélkül is a fordítónak lehetősége van a hatékonyabb kód létrehozására.

    A csatorna szintű adatai és funkciói el vannak rejtve.

    A névtérszennyezés elkerülése és annak következménye - kevésbé nagyméretű neveket használhat.

    Gyorsabb összeállítás és kommunikáció.

De egy gonosz rendetlenséget is kapsz, amikor a fájl szerkesztése, és elveszíti az implicit modularitást. Ezt akkor lehet leküzdeni, ha a forráskódot több fájlba osztja, és egy összeállítási egységbe fordul.

Mindazonáltal néhány megállapodást kell vetnie ahhoz, hogy megbirkózzon ezzel. Bizonyos mértékben függ az instrumentális láncodtól, de néhány általános mutató -

    Helyezze a nyitott felületet egy külön fejlécfájlba - még mindig meg kell tennie.

    Van egy fő fájl.c, amely magában foglalja az összes gyermekfájlt. Ez magában foglalhatja a nyílt felület kódját is.

    Használja a fordító tiltakozóit, hogy a privát címsorok és a forrásmodulok nem tartoznak a külső összeállítási modulokhoz.

    Minden személyes adatot és funkciót statikusnak kell nyilvánítani.

    Fogalmi különbség fenntartása az egyes.h.h fájlok között. A meglévő megállapodásokat használja. A különbség az, hogy sok statikus hirdetés lesz a címsorokban.

    Ha az eszközlánc nem ír semmilyen bázist, akkor ne adjon meg magánvállalati fájlokat, mint a .c i.h. Ha engedélyezett őröket használ, akkor nem generálnak kódot, és nem adnak meg új neveket (ennek eredményeként néhány üres szegmens találkozhat). Hatalmas előny az, hogy más eszközök (például IDE) ezt a fájlokat ennek megfelelően feldolgozzák.

A fájlkiterjesztés nem számít a legtöbb C fordítók számára, így működik.

Azonban a fájl vagy projekt beállításaitól függően a C fájl tartalmaz egy külön objektumfájlt. A kötés során ez kettős karakterekhez vezethet.

ehhez hasonló címet kell hozzáadnia.

#Inlude.

megjegyzés: Mindkét fájlt egy helyen kell elhelyezni.

Helyesen engedélyezheti a fájlok.c vagy.cppp más forrásfájlokat. Az IDE környezetétől függően általában megakadályozhatja a kettős kötést azáltal, hogy megtekintheti az engedélyezni kívánt forrásfájlok tulajdonságait, általában jobbra kattint, és kattintson a Tulajdonságok elemre, és törölje a jelölést a doboz / ellenőrző összeállítás / link kizárása / kizárása összeszerelés vagy bármely más lehetőség. lehet. Vagy nem engedélyezheti a fájlban lévő fájlt, így az IDE környezet nem is tudja, hogy létezik, és nem próbálja összeállítani. És a make-fájlokkal, csak nem tette be a fájlt a kompiláció és az elrendezéshez.

Szerkesztés: Sajnálom, válaszoltam a válasz helyett más válaszokra :(



szavazás online (8)

A C fájl másik fájlba való engedélyezése törvényes, de nem megfelelő, ha biztosan nem tudja, miért csinálod, és mit akarnak elérni.
Szinte magabiztos vagyok, hogy ha egy okból közzéteszi, akkor, amely szerint a kérdésedet közölni fogják a közösséggel, találsz egy másik megfelelő módját a cél eléréséhez (figyeljen "szinte", mivel lehetséges, hogy ez a döntés, a kontextus miatt).

By the way, hiányzott a kérdés második részét. Ha a C fájl engedélyezve van egy másik fájlban, és ugyanakkor a projektben szerepel, akkor valószínűleg találkozik a karakterek duplikálásával, miért az objektumkötés, azaz ugyanazt a funkciót kétszer definiálják (ha csak nem statikusak ).

A fájlkiterjesztés nem számít a legtöbb C fordítók számára, így működik.

Azonban a fájl vagy projekt beállításaitól függően a C fájl tartalmaz egy külön objektumfájlt. A kötés során ez kettős karakterekhez vezethet.

Az összeszerelési környezetétől függően (nem adja meg), észleli, hogy pontosan működik, ahogy akarja.

Azonban sok környezet van (mind az IDE, mind a sok manuálisan megmunkált makefile), amelyek a kompilációra várnak * .c - Ha ez megtörténik, akkor valószínűleg a karakterek megkettőzésének köszönhetően a linker hibáival találkozik.

Általában kerülni kell ezt a gyakorlatot.

Ha be kell kapcsolnia a forrás bekapcsolását (és általában kerülni kell), használja a fájl másik fájlt.

Használhatja a GCC-fordítót Linuxban, hogy két fájlt köthessen egy kimenettel. Tegyük fel, hogy két C-fájlja van, amelyek közül az egyik a "main.c", a másik pedig "support.c". Így a kettő összekapcsolására irányuló parancs

Gcc main.c support.c -o main.out

Ez a két fájl egy main.out kimenethez kapcsolódik. A kimeneti parancs elindításához lesz

./main.out.

Ha a SAID.C funkciót használja, amelyet a Support.c fájlban jelent meg, akkor leginkább a külső tárolási osztályt is fel kell tüntetnie.

Azt hittem, megosztanám a helyzetet, amikor a csapatom úgy döntött, hogy engedélyezi a fájlokat. Építészünk elsősorban olyan modulokból áll, amelyek az üzenetrendszeren keresztül felszabadulnak. Ezek az üzenetkezelők nyilvánosan elérhetőek, és sok helyi statikus működési funkciót okoznak munkájuk elvégzéséhez. A probléma merült fel, amikor megpróbáltam bevonni az egyetlen vizsgálati esetünket, mivel az adott végrehajtási kód végrehajtásának egyetlen módja közvetetten az általános üzenetfelületen keresztül történt. A Munkavállaló néhány jellemzőjével a térdben a kötegben kiderült, hogy rémálom volt, hogy biztosítsa a megfelelő bevonatot.

A Files.c engedélyezése lehetőséget adtunk arra, hogy az autóban lévő csavart kaphassuk, érdekeltünk a tesztelésben.

A C nyelv nem tiltja meg az ilyen típusú #include-t, de a kapott fordítási egységnek továbbra is érvényes C.

Nem tudom, melyik programot használja az s.prj fájlt. Ha olyan "make" vagy vizuális stúdiót használsz, vagy valami mást, csak győződjön meg róla, hogy telepíti azokat a fájlok listáját, amelyeket össze kell állítani anélkül, hogy nem lehet önállóan összeállítani.

Helyesen használják, hasznos módszer lehet.

Tegyük fel, hogy bonyolult kritikus alrendszere van egy meglehetősen kis nyilvános interfésszel és sok nem realizált végrehajtási kóddal. A kód több ezer sorig működik, több száz magánfunkció és egy kicsit magán adatok. Ha nem triviális beépített rendszerekkel dolgozik, akkor valószínűleg gyakran megbirkózik ezzel a helyzetgel.

A döntése valószínűleg többszintű, moduláris és felszabadítható, és ezek a szempontok kényelmesen képviselhetők és megerősíthetők az alrendszer különböző részeinek különböző fájljainak kódolásával.

A C-vel sokat elveszíthetsz. Szinte minden eszköz tisztességes optimalizálást biztosít egyetlen összeállítási egység számára, de nagyon pesszimistikailag utalnak valami bejelentett extern.

Ha mindent egy forrásmodulba teszel, akkor -

    A termelékenység és a méretkód javítása - Sok esetben a függvényhívások beépülnek. Még Inlay nélkül is a fordítónak lehetősége van a hatékonyabb kód létrehozására.

    A csatorna szintű adatai és funkciói el vannak rejtve.

    A névtérszennyezés elkerülése és annak következménye - kevésbé nagyméretű neveket használhat.

    Gyorsabb összeállítás és kommunikáció.

De egy gonosz rendetlenséget is kapsz, amikor a fájl szerkesztése, és elveszíti az implicit modularitást. Ezt akkor lehet leküzdeni, ha a forráskódot több fájlba osztja, és egy összeállítási egységbe fordul.

Mindazonáltal néhány megállapodást kell vetnie ahhoz, hogy megbirkózzon ezzel. Bizonyos mértékben függ az instrumentális láncodtól, de néhány általános mutató -

    Helyezze a nyitott felületet egy külön fejlécfájlba - még mindig meg kell tennie.

    Van egy fő fájl.c, amely magában foglalja az összes gyermekfájlt. Ez magában foglalhatja a nyílt felület kódját is.

    Használja a fordító tiltakozóit, hogy a privát címsorok és a forrásmodulok nem tartoznak a külső összeállítási modulokhoz.

    Minden személyes adatot és funkciót statikusnak kell nyilvánítani.

    Fogalmi különbség fenntartása az egyes.h.h fájlok között. A meglévő megállapodásokat használja. A különbség az, hogy sok statikus hirdetés lesz a címsorokban.

    Ha az eszközlánc nem ír semmilyen bázist, akkor ne adjon meg magánvállalati fájlokat, mint a .c i.h. Ha engedélyezett őröket használ, akkor nem generálnak kódot, és nem adnak meg új neveket (ennek eredményeként néhány üres szegmens találkozhat). Hatalmas előny az, hogy más eszközök (például IDE) ezt a fájlokat ennek megfelelően feldolgozzák.

Ez normális? Igen, összeáll

ajánlott? Nem - .c fájlok vannak összeállítva fájlok.abh, amelyek a Compilation (Linker) után csatlakoztatva vannak a végrehajtható fájlban (vagy könyvtárban), így nincs szükség egy fájlt. Ehelyett valószínűleg azt szeretné, hogy egy fájl.h, amely felsorolja a rendelkezésre álló funkciókat / változókat a másik.c fájlban, és engedélyezze a file.h

Ez a fajta kérdés, amit nemrég kértem egy kollégát, kezdtem programot az SI-ben. És azt hittem, jó oka volt megosztani ennek a kérdésnek a megértését. Mivel még a tapasztalt programozók sem mindig rendelkeznek hasonló szempontból erre.

Részben ez az ízlés kérdése, így ki érdekel, mint én, üdvözöljük a macskát.

Annak ellenére, hogy a H-fájlokról szóló "teljes igazság" a GCC preprocesszorának leírásának megfelelő szakaszában található, bizonyos magyarázatot és illusztrációkat.

Tehát, ha szó szerint, a fejlécfájl (H-fájl) olyan fájl, amely számos forrásfájlban (C-fájlok) használatára szánt nyilatkozatot és makró definíciót tartalmaz. Illusztráljuk.

Könnyű észrevenni, hogy az 1. és 2. függvények mindkét fájlban szerepelnek. És mivel a fejlécfájlok bevonása ugyanazokat az eredményeket eredményezi, mint az egyes SI fájlok tartalmának másolását, a következőket teheti:

Ily módon egyszerűen két fájl közös részét osztottuk ki, és a fejlécfájlba helyeztük.
De a fejléc fájl az interfészen ebben az esetben?

  • Ha meg kell használnunk a funkcionalitást, hogy az 1. és a 2. funkciót valahol máshol, akkor igen
  • Ha a 2. makró csak az Unit1.c és az Unit2.c fájlok használatára szolgál, akkor nem helyezi el az interfészfájlba
Ráadásul tényleg két SI fájlra van szükségünk a fejléc fájlban meghatározott felület megvalósításához? Vagy az egyik?
A kérdésre adott válasz függ az interfész funkciók végrehajtásának részleteitől és a végrehajtási helyüktől. Például, ha részletesebben készítesz részleteket, akkor beállíthat egy opciót, ha az interfész funkciókat különböző fájlokban hajtják végre:


Ez a kiviteli alak magas kódokhoz, alacsony tesztekhez és az ilyen modulok újrafelhasználásának összetettsége.
Annak érdekében, hogy ne legyen ilyen nehézségek, mindig egy C-fájlt és fejlécfájlt vizsgálok egy modulként. Amiben,
  • a fejléc fájl csak olyan funkciókat, típusokat, makrókat tartalmazza, amelyek a modul interfészének részét képezik.
  • A C-fájlnak viszont tartalmaznia kell a H-fájlban bejelentett valamennyi funkció végrehajtását, valamint magántípusokat, makrókat és funkciókat, amelyek szükségesek az interfész megvalósításához.
Így, ha lehetőséget kaptam arra, hogy a kódot alkalmazzam, hogy a diagramot alkalmazzák, megpróbálnám elérni a következőket (_c és _h vége a fájlnevekben, mivel a használt eszköz használata lehetetlen ábrák létrehozása):


A diagram azt mutatja, hogy valójában két független modullal foglalkozunk, amelyek mindegyike saját interfésze van egy fejlécfájl formájában. Ez lehetővé teszi, hogy csak olyan felületet használjon, amely ténylegesen szükséges ebben az esetben. Ezenkívül ezek a modulok egymástól függetlenül tesztelhetők.
Az olvasó, valószínűleg észrevette, hogy a fejlécfájl makrója ismét elküldte a másolatot mindkét SI fájlban. Természetesen nem túl kényelmes támogatni. De az interfész makró része is nem megfelelő.
Ilyen esetekben inkább külön fejlécfájlot készítek, amelyek több SI fájlhoz szükséges típusokat és makrókat tartalmaznak.

Remélem sikerült azonosítani azokat a szervezeteket, amelyeket a fejlécfájlokba kell helyezni. Amellett, hogy a különböző SI fájlok által igényelt nyilatkozatokat és makrókat tartalmazó interfészek és fájlok közötti különbséget mutatják.

Köszönjük figyelmét az anyagra.

support.microsoft.

A forrásfájlok vizuális C ++ -ben történő megváltoztatásakor a karakterláncoknak a "CR / LF" karaktereket [a kocsi visszatérő szimbólum, sorfordítás] kombinációt kell kitölteniük. A Unix rendszerekben a karakterláncok befejeződnek az "LF" használatával. Így a Windows csoportban megváltozott fájlok megtekintésekor a UNIX rendszerekben a "^ M" karakterek sorban jelennek meg. Ez csak akkor történik, ha a szerkesztő nem tudja, hogyan kell értelmezni a Windows fájlt. A Visual C ++ fájlokat megnyithatja a UNIX LF létrehozásával végződő karaktereket. Ha módosítja ezt a fájlt, és mentse el a Visual C ++ -ről, akkor a Windows formátumban menthető (a CR / LF és NOT LF, amely korábban a rendszerben volt).

Ez a cikk leírja a Windows platformon létrehozott módosított fájl mentésének eljárásait olyan formátumban, amely UNIX rendszerekben használható.

JEGYZET: Visual C ++. A Net IDE tartalmazza a fájlt, hogy mentse a fájlt Unix formátumban. Integrált fejlesztési környezetben mentse el a fájlt Mentés másként..., Válassza a Mentés lehetőséget a legördülő listából Mentés kódolással ...és kattintson a thrn gombra Igen. Válasszon a legördülő listából a sorkódolás Unix (LF)majd kattintson ide rendben.

Használhatja a következő lépéseket, hogy hozzon létre egy Win32 konzol alkalmazás projekt, amely alakítja tartalmazó fájl „CR / LF” befejezni a húr „LF”:

  1. Új Win32 üres projekt létrehozása a DOS2UNIX névvel a Win32 konzol alkalmazásokkal.
  2. Nak,-nek Fájl Menü, kattintson Újmajd kattintson ide Fájlok Tab.
  3. Választ Forrásfájl C / C ++ És írja be az új DOS2UNIX.CPP fájl nevét.
  4. Helyezze be a következő kódot a DOS2UNIX.CPP-ben:

    #Inlude. #Inlude. #Inlude. Névtér STD használatával; Int Main (INT ARRGC, CHAN * ARGV) (ha (argc! \u003d 2) (COUT)<< "Please specify: dos2unix filename" << endl; return 0; } char ch; char temp="\0"; //Open the file for reading in binarymode. ifstream fp_read(argv, ios_base::in \ / ios_base::binary); sprintf(temp, "%s.temp", argv); //Create a temporary file for writing in the binary mode. This //file will be created in the same directory as the input file. ofstream fp_write(temp, ios_base::out \ / ios_base::trunc \ / ios_base::binary); while(fp_read.eof() != true) { fp_read.get(ch); //Check for CR (carriage return) if((int)ch == 0x0D) continue; if (!fp_read.eof())fp_write.put(ch); } fp_read.close(); fp_write.close(); //Delete the existing input file. remove(argv); //Rename the temporary file to the input file. rename(temp, argv); //Delete the temporary file. remove(temp); return 0; }

  5. Nak,-nek Épület Menü, kattintson Dos2unix.exe létrehozása. EXE fájl létrehozásához.

Lehet, hogy ellenőrizheti ezt az exe fájlt, hogy lássa, hogy megfelelően működik-e. Ehhez nyissa meg a fájlt a Visual C ++ bináris szerkesztőben Nyisd ki csoportban Fájl Menü a DOS2UNIX.EX, beállítás kiválasztásával Nyílt Kom. Binárismajd kattintva Nyisd ki. Például, ha a fájl "Hellocrlfworld" -t tartalmaz, a bináris fájladatok (hexadecimális) így fog kinézni:

48 65 6 C 6 C 6F 0 D 0a 57 6F 72 6 C 64

Ez egyenértékű:

Helló
Béke

A parancssorban hajtsa végre a DOS2UNIX.EXE parancsot . Ezután nyissa meg a fájlt a Visual C ++ bináris szerkesztőben. Látni fogja, hogy a 0x0d s törlődik. Amíg nem változtatja meg a fájlt, és mentse el a Visual C ++ 0x0d s nem jelenik meg.

Ez a Visual C ++ automatizálási modell kombinációjával kombinálva automatizálhatja az egész folyamatot. Egyszerű Microsoft Visual Basic Macro forgatókönyv írható, hogy hívja ezt az alapot, de először hozzá kell adnia Szolgáltatás A menü a következő:

  1. Nak,-nek Szolgáltatás Menü, kattintson Beállításmajd kattintson ide Szolgáltatás Tab.
  2. Adja meg a nevet, például a DOS2UNIX-t, és adja meg a DOS2UNIX.EXE fájl teljes elérési útját Csapat Szerkesztési mező.
  3. Állítsa be az argumentumot, a $ (fájlnév) $ (fileext).
  4. Adja meg a $ (WKSPDIR) forráskönyvtárat (adja meg saját útját).

A program ellenőrzéséhez nyissa meg a fájlt a Visual C ++ szerkesztőben, majd a Szolgáltatás Indítási menü Dos2unix. eszközök. Látni fogja, hogy az összes CR-karakterét törölték a szerkesztőben.

Ha kell automatizálni ezt a folyamatot folyamatot oly módon, hogy minden egyes alkalommal, amikor megtakarítás a nyitott fájlt a Visual C ++ szerkesztő, a DOS2Unix.exe eszköz neve eltávolítani 0x0D s, majd a következő VBScript makró:

"Ez a dokumentum minden alkalommal, amikor a dokumentumot a VC ++ szerkesztőbe mentették. Sub Application_DocumentsVe (Thedocument)" Ez hívja a felhasználói eszközt az Eszközök menüben. "Változtassa meg a számot attól függően, hogy mi van. Alapértelmezés szerint csak" 6 eszköz van az Eszközök menü alatt, így a DOS2UNIX eszköz a 7.. Executecommand "Usertool7" End Sub

Ez a vbscript kód csak akkor működik, ha a Visual C ++ szerkesztőre nyitva áll. Ez az egyetlen módja annak, hogy egy exe-fájlt hívjon a VBScript makróból (a VBScript makró nem kerül átvitelre a paraméterekre). Ehelyett írhatsz, és rugalmasabb lesz. Hívja a "dos2unix.exe" eszközt az add-in -ból anélkül, hogy hozzá kell adnod Szolgáltatás menü.

A VBScript által nyújtott makrók segítségével a Visual C ++ -ben:

  1. Nyisson meg egy meglévő fájlt kiterjesztéssel.DSM-vel, vagy hozzon létre egyet.
  2. Helyezze be a fájlban szereplő kódot.
  3. A Visual C ++ -ben kövesse az alábbi lépéseket.
    1. Nak,-nek Szolgáltatás Menü, kattintson Beállítás.
    2. nyomja meg a gombot Makrófájlok és kiegészítők Tab.
    3. nyomja meg a gombot Áttekintés File.dsm letöltése makró. Egyszer a fájlban.DSM-t választották be Áttekintéspárbeszédpanelen megjelenik a fájl Kiegészítők és makrók Fájlok listája a kiválasztott jelölőnégyzet használatával.
    4. nyomja meg a gombot Bezárás folytatni.

Most, ha megnyitja a fájlt a Visual C ++ szerkesztőben, és mentse el a fájlt Fájl A MACRO nevű menü és az összes 0x0D S törlődik a nyílt fájlból. Mivel minden fájlt érint, mentse el mostantól, és alkalmazza a jövőben megnyitott bármely projektre, győződjön meg róla, hogy kikapcsolja a makrót Szolgáltatás Menü segítségével Beállítás (Törölje a jelölőnégyzetet a makró mellett).