AB.dll (ve AB.lib) için derlenmiş.dllexport statik sınıf yöntemleri
class __declspec(dllimport) B
{
public:
//...
void bar()
{
A::foo();
}
};
Birincisi: Eğer B sınıfı IMPORTED söylüyorlar, çalışıyor Şimdi ana programı: dosya diyor başlık zaman
int main()
{
B b;
b.bar();
return 0;
}
When compiling the main program and linking it to AB.lib,
it complains about the A::foo() as unresolved external symbol
(in this case A::foo is a static function).
Do I need to somehow export A::foo() or could it be that
I introduce errors somewhere? Any help is appreciated.
Modified:
1) Sorry for the type, it should be dllexport, not dllimport
2) in my actual project, the implementation is in .cpp files. They are not inline functions.
Thanks.
http://stackoverflow.com/questions/35048940/what-does-this-c-class-declaration-mean yanıtları yardımcı olabilir. –
Kaynak dosyada "B :: bar" uygulamasının koyulmasını sağlayın. Eğer “A” sadece “B” kaynağında kullanılıyorsa, dışa aktarmanız gerekmemelidir. –
Bağlayıcıya B :: bar() çözümlemenin iki yolunu verdiniz. Tanımı .h dosyasından kullanabilir veya AB.lib dosyasında kullanabilir. Bu kesin bir sonuç, .obj dosyasında bulunduğundan, .h dosyasındaki her zamanki gibi olacaktır. Şimdi A :: foo() çözümlemesi gerekiyor. Balina başarısız, AB.lib sahip değil. Tanımı .h dosyasında kaldırmanız ve derleyicinin kullanamayacağı şekilde .cpp dosyasına taşımanız gerekir. –