2013-09-26 19 views
5

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.

+1

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

+3

'.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

+1

Evet, .lib ile bağlantı kurarım. Neden bir std döndüren çok kötü bir fikir: string? Ben bilmiyordum. – sansub

cevap

3

Visual Studio proje yapılandırmasını değiştirmeyi denerdim. Genel> Ortak Dil Çalışma Zamanı Desteği altında /clr:pure yerine /clr ayarlayın.

İlgili konular