2013-03-16 4 views
0

J'essaie de créer un pilote en utilisant WDK.J'ai besoin d'utiliser malloc dans ce pilote.Quand j'essaie d'utiliser cela, j'ai eu une erreur comme le symbole externe non résolu malloc.Je pense que je dois inclure un peu library.But je ne suis pas sûr .Comment puis-je résoudre cette erreur?symbole externe non résolu _malloc

+0

Ceci n'est techniquement pas un doublon. L'OP essayait de résoudre un problème d'éditeur de liens spécifique au WDK. La question dupe'd est pour des problèmes de liaison plus génériques. – selbie

Répondre

8

Windows Les pilotes de périphériques ne sont normalement pas liés au C-Runtime. L'environnement de construction pour le DDK/WDK ne lie pas avec MSVCRT. Mais il existe des routines d'allocation de mémoire qui peuvent être utilisées dans la programmation du noyau et du pilote.

Voir this link pour plus de détails.

Side note:

Je suis un peu inquiet que vous n'avez pas mentionné que « libre » était aussi un symbole non résolu. Cela suggère que vous ne l'appelez jamais, d'où une fuite de mémoire dans le code du pilote de périphérique. ;) Ou le WDK tire-t-il une implémentation de free() de quelque part?

+0

merci de son fonctionnement – raji

+0

@darkendemon - Que diriez-vous d'une grosse case verte pour retourner la faveur? – selbie

+0

J'ai utilisé MmAllocateNonCachedMemory pour allouer de la mémoire.J'oublie d'utiliser Free. Je ne sais pas quelle fonction je dois utiliser pour libérer de la mémoire dans la programmation du pilote. Peut-on me guider? .Je suis nouveau à la programmation du pilote. – raji