Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  c source code, Änderung und Kompilierung

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  c source code, Änderung und Kompilierung (1501 mal gelesen)
marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 23. Aug. 2010 15:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo die Damen und Herren,

um mein Konzept "serverbasierte AutoCAD Profile" umzusetzen, benötige ich ein Kommandozeilentool das im Batchbetrieb in Reg und xml basierten AutoCAD Support Daten Zeichenersetzungen vornimmt.
Das habe ich auch mehrfach in verschiedensten Formen gefunden.
Leider hat sich jetzt im finalen Testbetrieb herausgestellt, dass das Tool meiner Wahl im Betrieb mit eingeschränkten lokalen Rechten nicht läuft. Das Tool versucht im System-Root Folder eine temporäre Datei anzulegen, was natürlich als Standard-User nicht geht. Super  . Nun liegt aber der Source Code vor und es sollte für 'nen erfahrenen C Programmier wohl kein Problem sein den Code auf %temp% zu verändern und dann neu zu kompilieren. Nur leider bin ich weder C Programmierer noch erfahren darin. Hat irgendwer hier aus dem Forum Lust und Zeit sich dieser Sache anzunehmen?
Das finale Produkt: Anwendung des "Definitive Guide to Installing AutoCAD Architecture" und meine Ergänzungne dazu würde ich natürlich wie immer hier bei CAD.de veröffentlichen. Es wäre also u.A. auch ein Beitrag für die Community ;-) *locklock*
Das von mir verwendete Tool inkl. Quellcode ist hier zu finden:

StrFind at Softpedia

Macht mich heute jemand glücklich?

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 23. Aug. 2010 15:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

das 'StrFind at Softpedia' hat aber auch nix mit AutoCAD zu tun.

Leider fehlt der Hinweis, dass es modifizierbar wäre, also welche Form der Lizenzgebung (und damit Freigabe zur Veränderung) kann ich nicht finden. Findest Du welche, aus denen hervorgeht, dass es verändert werden darf, lass es mich wissen.

- alfred -

------------------
www.hollaus.at

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 23. Aug. 2010 15:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred,

es hat nur insofern mit AutoCAD zu tun als das ich es benutzte um den Usernamen in den XML und Regfiles auszutauschen.
Matthew Stachoni verwendet dazu in seinem Konzept das kostenpflichtige xchangecl.exe.
Das möchte ich natürlich nicht verwenden.

Im Source Code zu strfind.exe (im Download von softpedia enthalten) finde ich bzgl. Lizenz folgenden Passus in jeder Source Datei:

Zitat:

// This program is free software; you can redistribute it and/or modify 
// it under the terms of the GNU General Public License as published by 
// the Free Software Foundation; either version 2 of the License, or (at 
// your option) any later version.                                       
//                                                                       
// This program is distributed in the hope that it will be useful, but   
// WITHOUT ANY WARRANTY; without even the implied warranty of           
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     
// General Public License for more details.                             
//                                                                       
// For a copy of the GNU General Public License, write to the Free       
// Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA   
// 02111-1307, USA.                                                     

Nun bin ich auch kein Fachmann für Lizenzfragen, für mich als Laien hört sich das jedoch so an als ob ich Änderungen am SourceCode vornehmen darf solange der Source Code wiederum unter GNU Public License veröffentlich wird. Das wäre natürlich Voraussetzung für denjenigen der die gewünschte Änderung vornehmen könnte/würde.

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 23. Aug. 2010 18:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

sorry, hab's mir angesehen, ist noch C++ Version 6 (hab ich schon lange nicht mehr und wäre darin schon zu sehr aus der Übung), die gleichzeitige Konvertierung auf neu plus den Einbau auf Temp-Path ist aber dann wieder eine Menge Testarbeit. Bin damit leider out.

Sorry, ich hoffe es gibt noch wen anderen, - alfred -

------------------
www.hollaus.at

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 23. Aug. 2010 19:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred,

trotzdem Danke für's drübergucken.

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 23. Aug. 2010 19:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

es gibt ein C++ Forum, vielleicht kann da besser geholfen werden.

- alfred -

------------------
www.hollaus.at

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 23. Aug. 2010 19:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Alfred,

jo, aber die Beteiligung dort läßt doch starke Zweifel aufkommen ob's überhaupt irgendwer lesen würde ;-)

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 23. Aug. 2010 21:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von marc.scherer:
...
Leider hat sich jetzt im finalen Testbetrieb herausgestellt, dass das Tool meiner Wahl im Betrieb mit eingeschränkten lokalen Rechten nicht läuft. Das Tool versucht im System-Root Folder eine temporäre Datei anzulegen, was natürlich als Standard-User nicht geht. ...


Im Quellcode habe ich auf den ersten Blick keinen expliziten Zugriff auf Systemroot finden können. BAK Dateien und Indexdateien werden im Verzeichnis der aktuellen Datei abgelegt. benutzt du Wildcards für die Dateien? Rufst du das Programm mit UNC Pfad auf?
Kannst du vielleicht eine Beispiel Batch Datei mit dem von dir gewünschten Aufruf und auch noch eine Beispiel XML dazupacken? Quellcode lässt sich problemlos kompilieren, aber ich hab keinen geeigneten Testdatensatz bzw. Testaufruf, mit dem ich testen könnte.
Welche Fehlermeldung erhälst du denn bei einem Aufruf mit eingeschränkten Benutzerrechten?

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

[Diese Nachricht wurde von CAD-Huebner am 23. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 23. Aug. 2010 21:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

im File StrFind.cpp ==> Zeile 638 ist dieses Statement
const char *TempFilename = tmpnam(NULL);
wohl der Auslöser, ev. hilfts Dir, Udo.

- alfred -

------------------
www.hollaus.at

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM
Inventor AutoCAD 2022, AIP 4-2022
Win 10

erstellt am: 24. Aug. 2010 07:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für marc.scherer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von a.n.:
const char *TempFilename = tmpnam(NULL);[/i]


Möglich, dann kann man das ggf. sogar ohne Programmänderung beheben.

Zitat:
DESCRIPTION
The tmpnam() function generates a name for a temporary file. At the time that it is generated, the name is not in use by any existing file on the system. tmpnam() uses the TMPDIR environment variable as the path-prefix if set; otherwise, tmpnam() falls back to using the value of environment variable TMP, and then TEMP. Within a single process, the function tmpnam() will generate a new name each time it is called.

bzw.
http://msdn.microsoft.com/en-us/library/hs3e7355.aspx
Zitat:
_tempnam will generate a unique file name for a directory chosen by the following rules:
* If the TMP environment variable is defined and set to a valid directory name, unique file names will be generated for the directory specified by TMP.
* If the TMP environment variable is not defined or if it is set to the name of a directory that does not exist, _tempnam will use the dir parameter as the path for which it will generate unique names.
* If the TMP environment variable is not defined or if it is set to the name of a directory that does not exist, and if dir is either NULL or set to the name of a directory that does not exist, _tempnam will use the current working directory to generate unique names. Currently, if both TMP and dir specify names of directories that do not exist, the _tempnam function call will fail.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 24. Aug. 2010 10:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


regfile.reg.txt

 
Hallo Udo, Hallo Alfred,

vielen Dank für Eure rege Beteiligung.
Über die Doku von TMPNAM bin ich auch schon gestolpert, nur leider hält sich die Funktion nicht daran, wenn sie im Kontext eines einfachen Windows Benutzerkontos läuft. Als lokaler Admin: Kein Problem.

Nachfolgend für Dich Udo ein paar Antworten zu Deinen Fragen...
Beispiel Batch Datei:
[Edit: TEMPDIR mit TMPDIR ersetzt, aber keine Änderung des Verhaltens]
 

Zitat:

set TMPDIR=c:\Temp
set TMP=c:\Temp
set TEMP=c:\Temp
c:
cd c:\temp
REM Debugging Alternative Zeile getestet
REM C:\Temp\strfind.exe -r -y -t -k- -b ACATemplateUser %USERNAME% "c:\temp\regfile.reg"
strfind.exe -r -y -t -k- -b ACATemplateUser %USERNAME% regfile.reg

 

Zitat:
Original erstellt von CAD-Huebner:
Welche Fehlermeldung erhälst du denn bei einem Aufruf mit eingeschränkten Benutzerrechten?


Rufe ich die Batch als User auf, kommt es zu folgender Fehlermeldung:
 
Zitat:

Meldung, wenn Sicherheitslevel User:
Error opening "\s5q8." for output.
>> Total: 0 instance(s) of "ACATemplateUser" replaced with "ACATestUser".

Meldung, wenn Sicherheitslevel Admin
>> Total: 271 instance(s) of "ACATemplateUser" replaced with "Scherer".



  

Zitat:
Original erstellt von CAD-Huebner:
Im Quellcode habe ich auf den ersten Blick keinen expliziten Zugriff auf Systemroot finden können. BAK Dateien und Indexdateien werden im Verzeichnis der aktuellen Datei abgelegt.

Ich habe mir mit filemon angeschaut, was das Tool macht: Es versucht direkt auf c: eine temporäre Datei anzulegen, was der lokale Admin natürlich darf. Also scheint mir entweder das Programm fehlerhaft, wenn tmpnam einen temporären Pfad\Dateinamen generiert aber folgende Funktionen trotzdem versuchen das im Root zu erzeugen oder TMPNAM ist fehlerhaft und verheddert sich unter WinXP indem es die gesetzten Variablen ignoriert oder aber an falscher Stelle sucht bzw. als Arbeitsverzeichnis generell das Rootdrive verwenden will.

   

Zitat:
Original erstellt von CAD-Huebner:
benutzt du Wildcards für die Dateien?

Nein

   

Zitat:
Original erstellt von CAD-Huebner:
Rufst du das Programm mit UNC Pfad auf?

Nein, jetzt nicht mehr. War auch einer meiner ersten Gedanken. Ich kopiere strfind.exe und die zu manipulierenden Dateien nach c:\temp und rufe dann strfind mit jeder einzelnen Datei aus dem c:\temp Verzeichnis auf.

   

Zitat:
Original erstellt von CAD-Huebner:
Kannst du vielleicht eine Beispiel Batch Datei mit dem von dir gewünschten Aufruf und auch noch eine Beispiel XML dazupacken?

Yep, anbei.

------------------
Ciao,
Marc
       

[Diese Nachricht wurde von marc.scherer am 24. Aug. 2010 editiert.]

[Diese Nachricht wurde von marc.scherer am 24. Aug. 2010 editiert.]

[Diese Nachricht wurde von marc.scherer am 24. Aug. 2010 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



Sehen Sie sich das Profil von marc.scherer an!   Senden Sie eine Private Message an marc.scherer  Schreiben Sie einen Gästebucheintrag für marc.scherer

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 24. Aug. 2010 12:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


strFindSolution.zip

 
Hallo Udo, Hallo Alfred,

meine Rufe wurden erhört.
Ich habe im SourceCode von: "strfind.cpp" die Zeile:
const char *TempFilename = tmpnam(NULL);

durch:
const char *TempFilename = tempnam(NULL,NULL);

austauschen lassen und einen freundlichen Kollegen gefunden, der das mit VS2010 neu kompiliert hat...
Und es geht prima! Die temporäre Datei wird nun erwartungsgemäß im Temp-Bereich des Users erzeugt.
Problem gelöst, geänderter SourceCode und neue Version des Kompilats hier als Anhang.
Thanx @all.

------------------
Ciao,
Marc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz