أدى دمج كود C في مشروع C في مشاريع VS2010 المختلفة إلى في خطأ في الارتباط عند استدعاء دالة C من كود C. الخطأ، الذي تم تعريفه باسم LNK2001، يتعلق برمز خارجي لم يتم حله.
لتصحيح هذه المشكلة، تأكد من التنظيم السليم لقاعدة التعليمات البرمجية من خلال الالتزام بإرشادات محددة:
كود الوحدات:
إنشاء رؤوس وملفات التنفيذ:
إدارة الصادرات والواردات:
functions.h
#pragma مرة واحدة #تعريف FUNCTIONS_EXPORT_API #إذا تم تعريفه(__cplusplus) خارجي "ج" { #endif FUNCTIONS_EXPORT_API char *dtoa(double, int, int, int*, int*, char**); FUNCTIONS_EXPORT_API char *g_fmt(char*, double); FUNCTIONS_EXPORT_API void freedtoa(char*); #إذا تم تعريفه(__cplusplus) } #endif#pragma once
#define FUNCTIONS_EXPORT_API
#if defined(__cplusplus)
extern "C" {
#endif
FUNCTIONS_EXPORT_API char *dtoa(double, int, int, int*, int*, char**);
FUNCTIONS_EXPORT_API char *g_fmt(char*, double);
FUNCTIONS_EXPORT_API void freedtoa(char*);
#if defined(__cplusplus)
}
#endif
functions.c#define FUNCTIONS_EXPORTS #تشمل "functions.h" شار * dtoa (مزدوج، int، int، int *، int *، char **) { // تنفيذ الوظيفة } شار *g_fmt(شار*، مزدوج) { // تنفيذ الوظيفة } باطلة freedtoa (شار *) { // تنفيذ الوظيفة
#define FUNCTIONS_EXPORTS
#include "functions.h"
char *dtoa(double, int, int, int*, int*, char**)
{
// Function implementation
}
char *g_fmt(char*, double)
{
// Function implementation
}
void freedtoa(char*)
{
// Function implementation
}
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3