için bir çözüm derleyemiyorum C++ programlanmış bir dll ve Visual C++ programlanmış bir exe var."Hata LNK2028: çözümlenmemiş belirteç ..."
string __declspec(dllexport) ConfigureHAT(T_STRING pathFile);
Ve bütün başlıkları dosya ve dll dosyasını dahil exe projede:
ben dll fonksiyonları olarak ilan var.
ben dll işlevi çağırmak:
string ret = ConfigureHAT("file.txt");
Ve yürütülebilir proje derlenmiş olduğunda, bir sonraki hataları ile başarısız:
1> HATdllTester.obj: hata LNK2028: çözülmemiş belirteci (0A000317) "class std :: basic_string, sınıf std :: ayırıcısı> __Cdecl ConfigureHAT (sınıf std :: basic_string, sınıf std :: ayırıcısı>)" (? ConfigureHAT @@ $$ FYA? AV? $ basic_s tring @ DU? $ char_traits @ D @ std @ @ V? $ allocator @ D @ @ std @@ V12 @@ Z) işlevinde başvurulan "özel: void __clrcall HATdllTester :: mainWindow :: buttonConfigure_Click (sınıf Sistemi :: Nesne ^, sınıf Sistemi :: EventArgs ^)" (? buttonConfigure_Click @ MainWindow @ HATdllTester @@ $$ FA $ AAMXP $ AAVObject @ Sistemi @@ P $ AAVEventArgs>
1) 4 @@ Z @ AssemblyInfo.obj: hata LNK2028: çözülmemiş belirteci (0A000316) "class std :: basic_string, sınıf std :: ayırıcısı> __Cdecl ConfigureHAT (sınıf std :: basic_string, sınıf std :: ayırıcısı>)" (ConfigureHAT @@ $$ FYA? AV? $ Basic_string @ DU? $ Char_traits @ D @ std @ @ V? $ Allocator @ D @ 2 @ std @@ V12 @@ Z) işlevinde "Özel: void __clrcall HATdllTester :: MainWindow :: buttonConfigure_Click (sınıf Sistemi ^, sınıf Sistemi :: EventArgs^Nesne ::)" referanslı? (buttonConfigure_Click @ MainWindow @ HATdllTester @@ $$ FA $ AAMXP $ hata LNK2019: AAVObject Sistem @ @@ P $ AAVEventArgs 4 @@ Z)
1> AssemblyInfo.obj @ çözülmemiş dış simge "sınıfı std :: basic_string, sınıf std :: ayırıcı> __Cdecl ConfigureHAT (sınıf std :: basic_string, sınıf std :: allocator>) " (? ConfigureHAT @@ $$ FYA? AV? $ basic_string @ DU? $ char_traits @ D @ std @ @ V? $ Allocator @ D @ 2 @ std @@ V12 @@ Z) işlevinde başvurulan "private: void __clrcall HATdllTester :: mainWindow :: buttonConfigure_Click (sınıf System :: Object ^, sınıf System :: EventArgs ^) " (? ButtonConfigure_Click @ mainWindow @ HATdllTester @@ $$ FA $ AAMXP $ AAVObject @ System @@ P $ AAVEventArgs @ 4 @@ Z)
1> HATdllTester.obj: LNK2001: çözülmemiş dış simge "sınıfı std :: basic_string, sınıf std :: ayırıcısı> __Cdecl ConfigureHAT (sınıf std :: basic_string, sınıf std : allocator>) " (? ConfigureHAT @@ $$ FYA? AV? $ basic_string @ DU? $ char_traits @ D @ std @ @ V? $ allocator @ D @ 2 @ std @ @ V12 @ @ Z)
Herkes bana yardım edebilir mi? Aynı hatayla çok benzer mesajlar okuyorum, ancak kimse sorunumu çözmüyor.
Teşekkürler.> Linker - -> Girdi -> Ek bağımlılıklar
DÜZENLEME
Son olarak, Proje Özellikleri içine dll projesinde oluşturulan .lib dosyasını içeren sorunu çözmek.
VC++, C++ sembollerinin dll'de kullanılmasına izin veriyor mu? AFAIK, sembolün çalışmak için C'ye vermeniz gerekir (yani "extern" C "{/ * beyan * /}') – Geoffroy
'.lib' ile birlikte oluşturuldu mu? .dll' yanında mı? (p.s: DLL sınırı boyunca bir std :: string 'döndürmek çok kötü bir fikirdir.) – Simple
Evet, .lib ile bağlantı kurarım. Neden bir std döndüren çok kötü bir fikir: string? Ben bilmiyordum. – sansub