2010-12-03 32 views
0

Je viens de rencontrer un problème qui vient de nulle part ... Un fichier DFM est bien lu par Delphi lors de la construction du projet, mais lorsque je le compile à partir de la ligne de commande (dcc32) J'obtiens l'erreurDelphi 7 RLINK32 Erreur lors de la lecture du fichier dfm - échec de la lecture

Ce qui est plus étrange un autre projet contenant le même fichier construit sans erreur à partir de Delphi et dcc.

Est-ce que quelqu'un a une idée de ce qui pourrait causer quelque chose comme ça?

J'ai essayé de construire à partir d'un autre emplacement, toujours le même.

Le système d'exploitation est Windows Server 2008. Les autorisations semblent correctes.

+0

Est-il inclus dans le projet ou simplement trouvé via le chemin de recherche? –

+0

Je vous suggère de vérifier les élévations plus en profondeur – ComputerSaysNo

+0

Il est inclus dans le projet, celui-ci et d'autres. Seul celui-ci a un problème et uniquement sur cette machine compilée via dcc. – Sofija

Répondre

1

Utilisez SysInternals Process Monitor, et regardez quand il va chercher update.dfm.

Vous verrez probablement DCC32 chercher frénétiquement partout update.dfm (sauf l'endroit où il se trouve). Ou peut-être le trouver, mais OpenFile échoue avec une erreur.

De toute façon: vous découvrirez ce qui se passe exactement.

+0

Eh bien merci beaucoup pour cette astuce! Le problème s'est résolu de nulle part ... mais je crois que la prochaine fois je l'attraperai avec ça ... – Sofija

0

Pour tenter d'affiner la cause du problème, ouvrez la commande dfm avec un éditeur de texte et supprimez progressivement les propriétés et sauvegardez jusqu'à ce que la construction fonctionne. Cela indiquerait au moins s'il s'agit d'un problème avec un composant particulier de la dfm.

0

La principale différence avec dcc32 est le chemin de la bibliothèque dans les options d'environnement. Lorsque vous construisez à partir de l'EDI, ceci est utilisé. Lorsque vous exécutez dcc32, vous devez le spécifier. Vous pouvez le faire en définissant le chemin de bibliothèque pour les options -I et -U sur dcc32, ou vous pouvez utiliser un fichier dcc32.cfg pour contenir toute votre configuration pour la génération. RLINK32 peut signifier une ressource en double, pensez à renommer l'un des formulaires afin d'éviter le conflit. Cela dit, j'espère que le chemin de la bibliothèque devrait résoudre le problème.

0

Je l'ai trouvé après avoir eu le même problème qui semblait se produire de façon aléatoire de temps en temps si je changeais un peu de code d'ajouté un composant copié, cette fois la seule différence que j'ai faite était de changer = en <> mais en changeant ça marchait bien, sauf que maintenant j'ai changé quelque chose d'autre ça se reproduit - d'où la raison pour laquelle j'ai trouvé ça. Étant tout à fait un newb je n'ai pas vraiment compris certains des autres bits mentionnés ici, mais je viens de trouver en construisant le projet d'abord avant d'appuyer sur F9 semblait fonctionner .. juste pour le moment au moins.

Espérons que cela aide quelqu'un! :)

0

Je l'ai vu se produire lorsque vous supprimez une valeur d'un type enum et que cette valeur était utilisée dans le fichier dfm. La prochaine fois que vous ouvrirez la dfm, l'EDI mettrait le texte de la poubelle dans l'emplacement où la valeur était. Delphi 2010 si cela aide.

Je voudrais juste ouvrir le dfm dans un éditeur de texte et supprimer le texte corrompu.