Hallo Gemeinde,
habe vor ein Interface zu programmieren, das sich in 2 Teile gliedert.
einmal DLL und einmal EXE,
weil, ich arbeite mit Qt und man kann mit main eine DLL Entry Funktion
basteln. Wenn ich aber die ExE aufrufe und die DLL anspreche wird
die DLL main ausgeführt, nicht aber das EntryPoint "_start" in der EXE.
hierzu ein kleines snippet.
leider lässt sich das so nicht direkt mit alink.exe (nasm) linken.
und zwar kommt die Meldung von alink:
M:\Projects\kbase\kbase\src\release\2A\debug>alink.exe kbase.lib array.prg.obj 1.obj -oPE -subsys console
-entry _start -o array.exe
ALINK v1.6 (C) Copyright 1998-9 Anthony A.J. Williams.
All Rights Reserved
Loading file kbase.lib
Loading file array.prg.obj
Loading file 1.obj
matched Externs
matched ComDefs
Unresolved external __ZNSt8ios_base4InitD1Ev
Unresolved external _puts
Unresolved external __ZN16AbstractListenerC2Ev
Unresolved external _doWork
Unresolved external __ZNSt8ios_base4InitC1Ev
Unresolved external _atexit
Unresolved external __ZTVN10__cxxabiv120__si_class_type_infoE
Unresolved external __ZTVN10__cxxabiv117__class_type_infoE
M:\Projects\kbase\kbase\src\release\2A\debug>pause
Drücken Sie eine beliebige Taste . . .
M:\Projects\kbase\kbase\src\release\2A\debug> ?
Was kann das sein?
Danke für Infos
Gruß
paule
habe vor ein Interface zu programmieren, das sich in 2 Teile gliedert.
einmal DLL und einmal EXE,
weil, ich arbeite mit Qt und man kann mit main eine DLL Entry Funktion
basteln. Wenn ich aber die ExE aufrufe und die DLL anspreche wird
die DLL main ausgeführt, nicht aber das EntryPoint "_start" in der EXE.
hierzu ein kleines snippet.
Code:
#include <iostream>
using namespace std;
// In der dll:
class AbstractListener {
public:
virtual void listen() { };
};
void doWork(AbstractListener l) {
l.listen();
}
// in der main:
class Implementation : public AbstractListener {
virtual void listen() {
cout << "yep." << endl;
}
};
int main() {
Implementation i;
doWork(i);
return 0;
}
leider lässt sich das so nicht direkt mit alink.exe (nasm) linken.
und zwar kommt die Meldung von alink:
M:\Projects\kbase\kbase\src\release\2A\debug>alink.exe kbase.lib array.prg.obj 1.obj -oPE -subsys console
-entry _start -o array.exe
ALINK v1.6 (C) Copyright 1998-9 Anthony A.J. Williams.
All Rights Reserved
Loading file kbase.lib
Loading file array.prg.obj
Loading file 1.obj
matched Externs
matched ComDefs
Unresolved external __ZNSt8ios_base4InitD1Ev
Unresolved external _puts
Unresolved external __ZN16AbstractListenerC2Ev
Unresolved external _doWork
Unresolved external __ZNSt8ios_base4InitC1Ev
Unresolved external _atexit
Unresolved external __ZTVN10__cxxabiv120__si_class_type_infoE
Unresolved external __ZTVN10__cxxabiv117__class_type_infoE
M:\Projects\kbase\kbase\src\release\2A\debug>pause
Drücken Sie eine beliebige Taste . . .
M:\Projects\kbase\kbase\src\release\2A\debug> ?
Was kann das sein?
Danke für Infos
Gruß
paule