1

J'ai compilé une DLL avec DevC++ 5. J'obliens un .dll, un .a et un .def Je voudrais utiliser cette DLL dans un projet de C++ Builder. J'ai cherché dans l'aide et tout ce que j'ai trouvé c'est
To statically load a DLL when your C++Builder application is loaded, link the import library file for that DLL into your C++Builder application at link time. To add an import library to a C++Builder application, choose Project|Add to Project and select the .LIB file you want to add.
The exported functions of that DLL then become available for use by your application. Prototype the DLL functions your application uses with the __declspec (dllimport) modifier:
__declspec(dllimport) return_type imported_function_name(parameters);
Il y un moyen de générer ce fameux .lib à partir de ce que me donne DevC++ ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

2

D'ailleurs, quand je compile ma DLL avec M$VC++ 6, j'ai un .lib. J'ai alors pu ajouter ce .lib à mon projet C++Builder... mais l'édition des liens échoue :
[Linker Error] 'C:\(...)\MaDll.lib' contains invalid OMF record, type 0x21 (possibly COFF)
En fait c'est pas trop grave, puisque de toute façon je ne veux pas compiler ma DLL avec M$VC++.
Il y aurait donc plusieurs formats de .lib...
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

3

Deuxième remarque : GCC 3.3.1 serait-il moins performant que GCC 2.95 ?
J'ai un petit programme qui compresse un fichier et le décompresse aussitôt, tout ça en RAM pour que le bench ne soit pas influencé par la vitesse du disque dur.

Mon programme compilé avec GCC 2.95 mettait 13,5 secondes à faire son boulot.
Avec GCC 3.3.1, il met 15,5 secondes. Pire : le programme a grossi de 400 ko !

Soit :
- 800 % de place en plus !
- une perte de vitesse de 13% !

GCC n'était pas sensé s'améliorer au cours du temps ? doom

Les options de compilation sont les mêmes dans les 2 cas : -O3 -s -fomit-frame-pointer -march=i686.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

4

Va voir http://mywebpage.netscape.com/yongweiwu/stdcall.htm. Il faut partir du DEF, pas du LIB, pour importer ta DLL dans BCB.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

Merci, je vais voir ça. Pour l'augmentation faramineuse de taille, ça serait pas parceque GCC 3.3.1 insère des infos de déboguage ? pourtant DevC++ ne lui passe aucune option pour ça à priori :
(...)

g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

g++.exe -c entree.cpp -o entree.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

g++.exe -c huffman.cpp -o huffman.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

windres.exe -i compson_private.rc -I rc -o compson_private.res -O coff

g++.exe main.o entree.o huffman.o compson_private.res -o "compson.exe" -L"C:/Dev-Cpp/lib"
Execution terminated



[edit] : C'est bon pour les DLLs smile J'ai simplement viré la première ligne générée automatiquement par DevC++ dans le .def :
; dlltool --base-file C:\DOCUME~1\Moi\LOCALS~1\Temp/cca03376.base --output-exp p4ai.exp --dllname p4ai.dll --output-def libp4ai.def --no-export-all-symbols --add-stdcall-alias --exclude-symbol=DllMainCRTStartup --def C:\DOCUME~1\Moi\LOCALS~1\Temp/cca03376.def --output-lib libp4ai.a
car C++Builder s'arrêtait sur cette ligne avec une erreur, alors que c'est un commentaire... je l'ai remplacée par
LIBRARY p4ai.dll
pour que ça colle à la structure décrite dans la page que tu m'a montrée. J'ai ensuite inclus le .DEF à mon projet C++Builder, même si on ne peut pas le faire officiellement (il y a pleins de formats dans la boîte Project|Add Files To Project sauf *.def grin).
Il n'y a plus d'erreur à l'édition des liens. Seulement des warning "attempt to export non-public symbol 'xxx'" pour chaque fonction de ma DLL smile je vais maintenant voir si la DLL est bien chargée à l'exécution et si les fonctions sont accessibles.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

6

Thibaut B :
Merci, je vais voir ça. Pour l'augmentation faramineuse de taille, ça serait pas parceque GCC 3.3.1 insère des infos de déboguage ?

Non, c'est parce que la librairie C++ a été réécrite pour être plus conforme au standard (depuis la version 3.0) déjà et que la nouvelle est plus grosse et plus lente.
"attempt to export non-public symbol 'xxx'"

À mon avis, tu as fait une bêtise en compilant ta DLL.

Et au fait, je te signale que le C++ est totalement incompatible entre compilateurs différents. Tu ne peux linker que du C entre compilateurs différents.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

7

Ma DLL est en C pur et le projet DevC++ est déclaré comme un projet de C pur.
Quant au projet qui est énorme et plus lent, les seules fonctions de la bibliothèque que j'utilise sont open, read, write, close. Je lis un fichier de 15 Mo d'un coup, je compresse & décompresse le thread avec les fonctions de mon programme, puis j'écris le résultat de 15 Mo d'un coup. Ce seraient read et write qui sont devenues si lentes qu'elles mettent 1 seconde de plus à s'exécuter ? C'est beaucoup ! Je vais vérifier...

Je viens d'essayer d'utiliser une fonction, mais C++B échoue en me disant qu'il n'arrive pas à résoudre le symbole externe ma_fonction. Visiblement il ne suffit pas d'inclure le .h et le .def au projet. Je vais lire http://www.bcbdev.com/articles.htm comme conseillé sur ta page wink
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

8

Pour le projet énorme, essaye -fno-exceptions. Et aussi -fno-rtti tant que tu y es.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

Ca ne change rien wink
J'ai ouvert le .exe, et il contient plein d'informations (binaires et ASCII) qui n'étaient pas là avant. Par exemple, la fin comporte 20 ko de chaînes : _mainCRTStartup _WinMainCRTStartup ___mingw_CRTStartup __gnu_exception_handler@4 ___do_frame_init ___do_frame_fini .eh_frame __ZSt8__ioinit __Z41__static_initialization_and_destruction_0ii __GLOBAL__I_main __GLOBAL__D_main __ZN8c_entree6ouvrirEPKc __ZN8c_entree6fermerEv __ZN8c_entree8get_blocEPs __ZN8c_entree14longueur_canalEv __ZN8c_entree9frequenceEv __ZN8c_entree10resolutionEv __ZN8c_entree6canauxEv __ZN9c_huffmanC2EP11t_last_bitstt __ZN9c_huffmanC1EP11t_last_bitstt __ZN9c_huffmanD2Ev __ZN9c_huffmanD1Ev __ZN9c_huffman10compresserEPlP11t_last_bitsPcl __ZN9c_huffman15flush_last_bitsEPlP11t_last_bits __ZN9c_huffman12decompresserEPcP11t_last_bitsPlll __ZN9c_huffman16construire_arbreEPNS_6t_baseEPNS_6sNoeudE __ZN9c_huffman22init_base_reinit_arbreEPNS_6t_baseEPNS_6sNoeudEPts __ZN9c_huffman7can_useEv __ZSt27_GLIBCPP_mutex_address_initv __ZSt19_GLIBCPP_mutex_initv .data$_ZSt13_GLIBCPP_once .text$_ZSt19_GLIBCPP_mutex_initv .text$_ZSt27_GLIBCPP_mutex_address_initv __ZNSt8ios_base7failureC2ERKSs .data$_ZTVNSt8ios_base7failureE __ZNSt8ios_base7failureC1ERKSs __ZNSt8ios_base7failureD2Ev __ZNSt8ios_base7failureD1Ev __ZNSt8ios_base7failureD0Ev __ZNKSt8ios_base7failure4whatEv __ZNSt8ios_base4Init13_S_ios_createEb __ZNSt8ios_base4Init14_S_ios_destroyEv __ZNSt8ios_base4InitC2Ev __ZNSt8ios_base4InitC1Ev __ZNSt8ios_base4InitD2Ev __ZNSt8ios_base4InitD1Ev _ZZNSt8ios_base6xallocEvE6_S_top __ZNSt8ios_base6xallocEv __ZNSt8ios_base7_M_initEv __ZNSt8ios_base5imbueERKSt6locale __ZNSt8ios_baseC1Ev __ZNSt8ios_baseD1Ev __ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi __ZNSt8ios_base15sync_with_stdioEb .data$_ZTINSt8ios_base7failureE .text$_ZTSNSt8ios_base7failureE .data$_ZTISt9exception .text$_ZTSSt9exception __ZNSt8ios_base20_M_dispose_callbacksEv __ZNSt8ios_base17_M_call_callbacksENS_5eventE __ZNSt8ios_baseD2Ev __ZNSt8ios_baseC2Ev __ZNSt8ios_base13_M_grow_wordsEi .text$_ZNSt11__ios_flags12_S_boolalphaE .text$_ZNSt11__ios_flags6_S_decE .text$_ZNSt11__ios_flags8_S_fixedE .text$_ZNSt11__ios_flags6_S_hexE .text$_ZNSt11__ios_flags11_S_internalE .text$_ZNSt11__ios_flags7_S_leftE .text$_ZNSt11__ios_flags6_S_octE .text$_ZNSt11__ios_flags8_S_rightE .text$_ZNSt11__ios_flags13_S_scientificE .text$_ZNSt11__ios_flags11_S_showbaseE .text$_ZNSt11__ios_flags12_S_showpointE .text$_ZNSt11__ios_flags10_S_showposE [4][b](...)[/b][/4] .text$_ZNSt8ios_base15sync_with_stdioEb .text$_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE __ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE .text$_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE __ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE .data$_ZTVSo .text$_ZNSoD2Ev __ZNSoD2Ev .text$_ZNSoD1Ev __ZNSoD1Ev .text$_ZNSoD0Ev __ZNSoD0Ev .text$_ZNSo6sentryD2Ev __ZNSo6sentryD2Ev .text$_ZNSolsEPFRSoS_E __ZNSolsEPFRSoS_E .text$_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E __ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E .text$_ZNSolsEPFRSt8ios_baseS0_E __ZNSolsEPFRSt8ios_baseS0_E .text$_ZNSolsEl __ZNSolsEl .text$_ZNSolsEm __ZNSolsEm .text$_ZNSolsEb __ZNSolsEb .text$_ZNSolsEs __ZNSolsEs .text$_ZNSolsEt __ZNSolsEt .text$_ZNSolsEi __ZNSolsEi .text$_ZNSolsEj __ZNSolsEj .text$_ZNSolsEx __ZNSolsEx .text$_ZNSolsEy __ZNSolsEy .text$_ZNSolsEd __ZNSolsEd .text$_ZNSolsEf __ZNSolsEf .text$_ZNSolsEe __ZNSolsEe .text$_ZNSolsEPKv __ZNSolsEPKv .text$_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE __ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE .text$_ZNSo3putEc __ZNSo3putEc .text$_ZNSo5writeEPKci __ZNSo5writeEPKci .text$_ZNSo5flushEv __ZNSo5flushEv .text$_ZNSo5tellpEv __ZNSo5tellpEv .text$_ZNSo5seekpESt4fposIiE __ZNSo5seekpESt4fposIiE .text$_ZNSo5seekpElSt12_Ios_Seekdir __ZNSo5seekpElSt12_Ios_Seekdir .text$_ZNSo6sentryC2ERSo __ZNSo6sentryC2ERSo [4][b](...)[/b][/4] .text$_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw __ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw .data$_ZTTSo .data$_ZTISo .text$_ZTSSo .text$_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ __ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ .text$_ZNSo6sentrycvbEv __ZNSo6sentrycvbEv .text$_ZNSo6sentryD1Ev __ZNSo6sentryD1Ev .text$_ZNSo6sentryC1ERSo __ZNSo6sentryC1ERSo .text$_ZTv0_n12_NSoD0Ev __ZTv0_n12_NSoD0Ev .text$_ZTv0_n12_NSoD1Ev __ZTv0_n12_NSoD1Ev .text$_ZdlPv .data$_ZTVSt9bad_alloc .data$_ZTISt9bad_alloc .text$_ZTSSt9bad_alloc .text$_Znwj __Z21size_of_encoded_valueh __Z21base_of_encoded_valuehP15_Unwind_Context __Z12read_uleb128PKhPj __Z12read_sleb128PKhPi __Z28read_encoded_value_with_basehjPKhPj __Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info __Z15get_ttype_entryP16lsda_header_infoj __Z16get_adjusted_ptrPKSt9type_infoS1_PPv __Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi ___gxx_personality_v0 ___cxa_call_unexpected .data$_ZTISt13bad_exception .data$_ZTVSt13bad_exception .text$_ZTSSt13bad_exception .text$_Z21size_of_encoded_valueh .text$_Z21base_of_encoded_valuehP15_Unwind_Context .text$_Z12read_uleb128PKhPj .text$_Z12read_sleb128PKhPi .text$_Z28read_encoded_value_with_basehjPKhPj .text$_Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info .text$_Z15get_ttype_entryP16lsda_header_infoj .text$_Z16get_adjusted_ptrPKSt9type_infoS1_PPv .text$_Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi .text$__gxx_personality_v0 .text$__cxa_call_unexpected .text$_ZNKSs7_M_dataEv __ZNKSs7_M_dataEv .text$_ZNSs7_M_dataEPc __ZNSs7_M_dataEPc .text$_ZNKSs6_M_repEv __ZNKSs6_M_repEv .text$_ZNKSs9_M_ibeginEv __ZNKSs9_M_ibeginEv .text$_ZNKSs7_M_iendEv __ZNKSs7_M_iendEv .text$_ZNSs7_M_leakEv __ZNSs7_M_leakEv .text$_ZNKSs8_M_checkEj __ZNKSs8_M_checkEj .text$_ZNKSs7_M_foldEjj __ZNKSs7_M_foldEjj .text$_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_ __ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_ .text$_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_ __ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_ .text$_ZNSs9_M_mutateEjjj __ZNSs9_M_mutateEjjj .text$_ZNSs4_Rep11_S_terminalE .text$_ZNSs12_S_empty_repEv __ZNSs12_S_empty_repEv .text$_ZNSs12_Alloc_hiderC2EPcRKSaIcE __ZNSs12_Alloc_hiderC2EPcRKSaIcE .text$_ZNSsC2Ev __ZNSsC2Ev .text$_ZNSsC1Ev __ZNSsC1Ev [4][b](...)[/b][/4] .data$_ZTISt9type_info .data$_ZTIN10__cxxabiv120__si_class_type_infoE .text$_ZTSSt9type_info .text$_ZTSN10__cxxabiv120__si_class_type_infoE .text$_ZN9__gnu_cxx27__verbose_terminate_handlerEv __ZNSt6localeD2Ev __ZNSt6locale11_M_coalesceERKS_S1_j __ZNSt6localeC2Ev __ZNSt6localeC1Ev __ZNSt6localeC2ERKS_ __ZNSt6localeC2EPNS_5_ImplE __ZNSt6localeC1EPNS_5_ImplE __ZNSt6localeC2EPKc __ZNSt6localeC1EPKc __ZNSt6localeC2ERKS_PKcj __ZNSt6localeC1ERKS_PKcj __ZNSt6localeC2ERKS_S1_j __ZNSt6localeC1ERKS_S1_j __ZNSt6localeaSERKS_ __ZNSt6locale6globalERKS_ _ZZNSt6locale7classicEvE6__lock __ZNSt6locale5facetD2Ev .data$_ZTVNSt6locale5facetE __ZNSt6locale5facetD1Ev __ZNSt6locale5facetD0Ev __ZNSt6locale5facetC2Ej __ZNSt6locale5facetC1Ej [4][b](...)[/b][/4] __ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv .text$_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_ __ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_ __Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception ___cxa_throw ___cxa_rethrow .text$_Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception .text$__cxa_throw .text$__cxa_rethrow __ZSt15set_new_handlerPFvvE __ZNSt9bad_allocD2Ev __ZNSt9bad_allocD1Ev __ZNSt9bad_allocD0Ev .text$_ZSt7nothrow .text$_ZSt15set_new_handlerPFvvE .text$_ZNSt9bad_allocD2Ev .text$_ZNSt9bad_allocD1Ev .text$_ZNSt9bad_allocD0Ev _emergency_buffer _emergency_used _emergency_mutex __Z20emergency_mutex_initv _ZZ24__cxa_allocate_exceptionE4once ___cxa_allocate_exception ___cxa_free_exception .text$_Z20emergency_mutex_initv .data$_ZZ24__cxa_allocate_exceptionE4once .text$__cxa_allocate_exception .text$__cxa_free_exception _globals_static _globals_key _use_thread_key __Z16get_globals_dtorPv __Z16get_globals_initv _ZZ21get_globals_init_oncevE4once __Z21get_globals_init_oncev ___cxa_get_globals_fast ___cxa_get_globals .data$use_thread_key .text$_Z16get_globals_dtorPv .text$_Z16get_globals_initv .data$_ZZ21get_globals_init_oncevE4once .text$_Z21get_globals_init_oncev .text$__cxa_get_globals_fast .text$__cxa_get_globals __ZN10__cxxabiv111__terminateEPFvvE __ZN10__cxxabiv112__unexpectedEPFvvE __ZSt10unexpectedv __ZSt13set_terminatePFvvE __ZSt14set_unexpectedPFvvE __ZSt9terminatev .text$_ZN10__cxxabiv111__terminateEPFvvE .text$_ZSt9terminatev .text$_ZN10__cxxabiv112__unexpectedEPFvvE .text$_ZSt10unexpectedv .text$_ZSt13set_terminatePFvvE .text$_ZSt14set_unexpectedPFvvE .text$_ZNSaIcEC2Ev __ZNSaIcEC2Ev .text$_ZNSaIcEC1Ev __ZNSaIcEC1Ev .text$_ZNSaIcEC2ERKS_ __ZNSaIcEC2ERKS_ .text$_ZNSaIcEC1ERKS_ __ZNSaIcEC1ERKS_ .text$_ZNSaIcED2Ev __ZNSaIcED2Ev .text$_ZNSaIcED1Ev __ZNSaIcED1Ev .text$_ZNKSaIcE7addressERc __ZNKSaIcE7addressERc .text$_ZNKSaIcE7addressERKc __ZNKSaIcE7addressERKc .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev .data$_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev .text$_ZNSaIcE8allocateEjPKv __ZNSaIcE8allocateEjPKv .text$_ZNSaIcE10deallocateEPcj __ZNSaIcE10deallocateEPcj .text$_ZNKSaIcE8max_sizeEv __ZNKSaIcE8max_sizeEv .text$_ZNSaIcE9constructEPcRKc __ZNSaIcE9constructEPcRKc .text$_ZNSaIcE7destroyEPc __ZNSaIcE7destroyEPc .text$_ZNSaIwEC2Ev __ZNSaIwEC2Ev .text$_ZNSaIwEC1Ev __ZNSaIwEC1Ev .text$_ZNSaIwEC2ERKS_ __ZNSaIwEC2ERKS_ .text$_ZNSaIwEC1ERKS_ __ZNSaIwEC1ERKS_ .text$_ZNSaIwED2Ev __ZNSaIwED2Ev .text$_ZNSaIwED1Ev __ZNSaIwED1Ev .text$_ZNKSaIwE7addressERw __ZNKSaIwE7addressERw .text$_ZNKSaIwE7addressERKw __ZNKSaIwE7addressERKw .text$_ZNSaIwE8allocateEjPKv __ZNSaIwE8allocateEjPKv .text$_ZNSaIwE10deallocateEPwj __ZNSaIwE10deallocateEPwj .text$_ZNKSaIwE8max_sizeEv __ZNKSaIwE8max_sizeEv .text$_ZNSaIwE9constructEPwRKw __ZNSaIwE9constructEPwRKw .text$_ZNSaIwE7destroyEPw __ZNSaIwE7destroyEPw .data$_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE .data$_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE .data$_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE .text$_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj __ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj .text$_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi __ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi .text$_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj __ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj .text$_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj __ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj .text$_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj __ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev .text$_ZNS
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

10

pfff j'y arrive pas rage

J'ai tout essayé ce qui est expliqué sur la page.
1) Générer le .lib avec IMPLIB à partir de la dll : j'ai un [Linker Error] Unresolved external 'initialize_brain(int, int)' referenced from C:\...\UNIT1.OBJ
2) Générer un .def à partir de la dll avec IMPDEF : idem.
3) Refaire les essais 1) et 2) en changeant la convention d'appel : __cdecl au lieu de __stdcall : idem.

tombe
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

11

Unresolved external 'initialize_brain(int, int)'

C'est une signature C++ (une signature C serait initialize_brain seulement), donc tu essayes d'exporter/importer du C++, donc ça ne marche pas et c'est normal.
Essaye de tout déclarer en extern "C".
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

12

De même, ta DLL exporte des tonnes de symboles de type __Z.... Ce sont des méthodes C++, donc tu n'as pas le droit de les exporter.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

13

Et tu dis dans ton message ./7 que ta DLL est en C pur, mais ce n'est clairement pas le cas, sinon:
1. il n'y aurait pas du __Z*.
2. tes fichiers ne s'appelleraient pas main.cpp, entree.cpp et huffman.cpp. roll
3. le compilateur appelé ne serait pas g++, mais gcc.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

14

T'as rien compris !
tongue
Il y a deux problèmes différents et indépendants wink
1) j'ai un programme qui a pris 400 ko avec GCC 3.3.1 et qui est devenu plus lent. Il est codé en C++.
2) j'ai une DLL codée en C pur et compilée avec DevC++ 4.9.8.4 (le dernier) que je n'arrive pas à importer dans un programme codé sous Borland C++ Builder 6.
Kevin Kofler
:
Unresolved external 'initialize_brain(int, int)'

C'est une signature C++ (une signature C serait initialize_brain seulement), donc tu essayes d'exporter/importer du C++, donc ça ne marche pas et c'est normal.
Essaye de tout déclarer en extern "C".

Dans le .h de la DLL importée dans le projet C++ Builder ? ok je vais essayer smile
Kevin Kofler :
De même, ta DLL exporte des tonnes de symboles de type __Z.... Ce sont des méthodes C++, donc tu n'as pas le droit de les exporter.
Post #8 :
J'ai ouvert le .exe, et il contient plein d'informations (binaires et ASCII) qui n'étaient pas là avant. Par exemple, la fin comporte 20 ko de chaînes :_mainCRTStartup _WinMainCRTStartup ___mingw_CRTStartup __gnu_exception_handler@4 ___do_frame_init ___do_frame_fini .eh_frame __ZSt8__ioinit __Z41__static_initialization_and_destruction_0ii __GLOBAL__I_main __GLOBAL__D_main __ZN8c_entree6ouvrirEPKc __ZN8c_entree6fermerEv __ZN8c_entree8get_blocEPs __ZN8c_entree14longueur_canalEv __ZN8c_entree9frequenceEv __ZN8c_entree10resolutionEv __ZN8c_entree6canauxEv __ZN9c_huffmanC2EP11t_last_bitstt __ZN9c_huffmanC1EP11t_last_bitstt __ZN9c_huffmanD2Ev __ZN9c_huffmanD1Ev __ZN9c_huffman10compresserEPlP11t_last_bitsPcl __ZN9c_huffman15flush_last_bitsEPlP11t_last_bits __ZN9c_huffman12decompresserEPcP11t_last_bitsPlll __ZN9c_huffman16construire_arbreEPNS_6t_baseEPNS_6sNoeudE __ZN9c_huffman22init_base_reinit_arbreEPNS_6t_baseEPNS_6sNoeudEPts __ZN9c_huffman7can_useEv __ZSt27_GLIBCPP_mutex_address_initv __ZSt19_GLIBCPP_mutex_initv .data$_ZSt13_GLIBCPP_once .text$_ZSt19_GLIBCPP_mutex_initv .text$_ZSt27_GLIBCPP_mutex_address_initv __ZNSt8ios_base7failureC2ERKSs .data$_ZTVNSt8ios_base7failureE __ZNSt8ios_base7failureC1ERKSs __ZNSt8ios_base7failureD2Ev __ZNSt8ios_base7failureD1Ev __ZNSt8ios_base7failureD0Ev __ZNKSt8ios_base7failure4whatEv __ZNSt8ios_base4Init13_S_ios_createEb __ZNSt8ios_base4Init14_S_ios_destroyEv __ZNSt8ios_base4InitC2Ev __ZNSt8ios_base4InitC1Ev __ZNSt8ios_base4InitD2Ev __ZNSt8ios_base4InitD1Ev _ZZNSt8ios_base6xallocEvE6_S_top __ZNSt8ios_base6xallocEv __ZNSt8ios_base7_M_initEv __ZNSt8ios_base5imbueERKSt6locale __ZNSt8ios_baseC1Ev __ZNSt8ios_baseD1Ev __ZNSt8ios_base17register_callbackEPFvNS_5eventERS_iEi __ZNSt8ios_base15sync_with_stdioEb .data$_ZTINSt8ios_base7failureE .text$_ZTSNSt8ios_base7failureE .data$_ZTISt9exception .text$_ZTSSt9exception __ZNSt8ios_base20_M_dispose_callbacksEv __ZNSt8ios_base17_M_call_callbacksENS_5eventE __ZNSt8ios_baseD2Ev __ZNSt8ios_baseC2Ev __ZNSt8ios_base13_M_grow_wordsEi .text$_ZNSt11__ios_flags12_S_boolalphaE .text$_ZNSt11__ios_flags6_S_decE .text$_ZNSt11__ios_flags8_S_fixedE .text$_ZNSt11__ios_flags6_S_hexE .text$_ZNSt11__ios_flags11_S_internalE .text$_ZNSt11__ios_flags7_S_leftE .text$_ZNSt11__ios_flags6_S_octE .text$_ZNSt11__ios_flags8_S_rightE .text$_ZNSt11__ios_flags13_S_scientificE .text$_ZNSt11__ios_flags11_S_showbaseE .text$_ZNSt11__ios_flags12_S_showpointE .text$_ZNSt11__ios_flags10_S_showposE [4][b](...)[/b][/4] .text$_ZNSt8ios_base15sync_with_stdioEb .text$_ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE __ZNSoC2EPSt15basic_streambufIcSt11char_traitsIcEE .text$_ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE __ZNSoC1EPSt15basic_streambufIcSt11char_traitsIcEE .data$_ZTVSo .text$_ZNSoD2Ev __ZNSoD2Ev .text$_ZNSoD1Ev __ZNSoD1Ev .text$_ZNSoD0Ev __ZNSoD0Ev .text$_ZNSo6sentryD2Ev __ZNSo6sentryD2Ev .text$_ZNSolsEPFRSoS_E __ZNSolsEPFRSoS_E .text$_ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E __ZNSolsEPFRSt9basic_iosIcSt11char_traitsIcEES3_E .text$_ZNSolsEPFRSt8ios_baseS0_E __ZNSolsEPFRSt8ios_baseS0_E .text$_ZNSolsEl __ZNSolsEl .text$_ZNSolsEm __ZNSolsEm .text$_ZNSolsEb __ZNSolsEb .text$_ZNSolsEs __ZNSolsEs .text$_ZNSolsEt __ZNSolsEt .text$_ZNSolsEi __ZNSolsEi .text$_ZNSolsEj __ZNSolsEj .text$_ZNSolsEx __ZNSolsEx .text$_ZNSolsEy __ZNSolsEy .text$_ZNSolsEd __ZNSolsEd .text$_ZNSolsEf __ZNSolsEf .text$_ZNSolsEe __ZNSolsEe .text$_ZNSolsEPKv __ZNSolsEPKv .text$_ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE __ZNSolsEPSt15basic_streambufIcSt11char_traitsIcEE .text$_ZNSo3putEc __ZNSo3putEc .text$_ZNSo5writeEPKci __ZNSo5writeEPKci .text$_ZNSo5flushEv __ZNSo5flushEv .text$_ZNSo5tellpEv __ZNSo5tellpEv .text$_ZNSo5seekpESt4fposIiE __ZNSo5seekpESt4fposIiE .text$_ZNSo5seekpElSt12_Ios_Seekdir __ZNSo5seekpElSt12_Ios_Seekdir .text$_ZNSo6sentryC2ERSo __ZNSo6sentryC2ERSo [4][b](...)[/b][/4] .text$_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw __ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw .data$_ZTTSo .data$_ZTISo .text$_ZTSSo .text$_ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ __ZSt5flushIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_ .text$_ZNSo6sentrycvbEv __ZNSo6sentrycvbEv .text$_ZNSo6sentryD1Ev __ZNSo6sentryD1Ev .text$_ZNSo6sentryC1ERSo __ZNSo6sentryC1ERSo .text$_ZTv0_n12_NSoD0Ev __ZTv0_n12_NSoD0Ev .text$_ZTv0_n12_NSoD1Ev __ZTv0_n12_NSoD1Ev .text$_ZdlPv .data$_ZTVSt9bad_alloc .data$_ZTISt9bad_alloc .text$_ZTSSt9bad_alloc .text$_Znwj __Z21size_of_encoded_valueh __Z21base_of_encoded_valuehP15_Unwind_Context __Z12read_uleb128PKhPj __Z12read_sleb128PKhPi __Z28read_encoded_value_with_basehjPKhPj __Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info __Z15get_ttype_entryP16lsda_header_infoj __Z16get_adjusted_ptrPKSt9type_infoS1_PPv __Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi ___gxx_personality_v0 ___cxa_call_unexpected .data$_ZTISt13bad_exception .data$_ZTVSt13bad_exception .text$_ZTSSt13bad_exception .text$_Z21size_of_encoded_valueh .text$_Z21base_of_encoded_valuehP15_Unwind_Context .text$_Z12read_uleb128PKhPj .text$_Z12read_sleb128PKhPi .text$_Z28read_encoded_value_with_basehjPKhPj .text$_Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info .text$_Z15get_ttype_entryP16lsda_header_infoj .text$_Z16get_adjusted_ptrPKSt9type_infoS1_PPv .text$_Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi .text$__gxx_personality_v0 .text$__cxa_call_unexpected .text$_ZNKSs7_M_dataEv __ZNKSs7_M_dataEv .text$_ZNSs7_M_dataEPc __ZNSs7_M_dataEPc .text$_ZNKSs6_M_repEv __ZNKSs6_M_repEv .text$_ZNKSs9_M_ibeginEv __ZNKSs9_M_ibeginEv .text$_ZNKSs7_M_iendEv __ZNKSs7_M_iendEv .text$_ZNSs7_M_leakEv __ZNSs7_M_leakEv .text$_ZNKSs8_M_checkEj __ZNKSs8_M_checkEj .text$_ZNKSs7_M_foldEjj __ZNKSs7_M_foldEjj .text$_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_ __ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIS_SsEES2_ .text$_ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_ __ZNSs13_S_copy_charsEPcN9__gnu_cxx17__normal_iteratorIPKcSsEES4_ .text$_ZNSs9_M_mutateEjjj __ZNSs9_M_mutateEjjj .text$_ZNSs4_Rep11_S_terminalE .text$_ZNSs12_S_empty_repEv __ZNSs12_S_empty_repEv .text$_ZNSs12_Alloc_hiderC2EPcRKSaIcE __ZNSs12_Alloc_hiderC2EPcRKSaIcE .text$_ZNSsC2Ev __ZNSsC2Ev .text$_ZNSsC1Ev __ZNSsC1Ev [4][b](...)[/b][/4] .data$_ZTISt9type_info .data$_ZTIN10__cxxabiv120__si_class_type_infoE .text$_ZTSSt9type_info .text$_ZTSN10__cxxabiv120__si_class_type_infoE .text$_ZN9__gnu_cxx27__verbose_terminate_handlerEv __ZNSt6localeD2Ev __ZNSt6locale11_M_coalesceERKS_S1_j __ZNSt6localeC2Ev __ZNSt6localeC1Ev __ZNSt6localeC2ERKS_ __ZNSt6localeC2EPNS_5_ImplE __ZNSt6localeC1EPNS_5_ImplE __ZNSt6localeC2EPKc __ZNSt6localeC1EPKc __ZNSt6localeC2ERKS_PKcj __ZNSt6localeC1ERKS_PKcj __ZNSt6localeC2ERKS_S1_j __ZNSt6localeC1ERKS_S1_j __ZNSt6localeaSERKS_ __ZNSt6locale6globalERKS_ _ZZNSt6locale7classicEvE6__lock __ZNSt6locale5facetD2Ev .data$_ZTVNSt6locale5facetE __ZNSt6locale5facetD1Ev __ZNSt6locale5facetD0Ev __ZNSt6locale5facetC2Ej __ZNSt6locale5facetC1Ej [4][b](...)[/b][/4] __ZNKSt15basic_streambufIcSt11char_traitsIcEE6getlocEv .text$_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_ __ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_ __Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception ___cxa_throw ___cxa_rethrow .text$_Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception .text$__cxa_throw .text$__cxa_rethrow __ZSt15set_new_handlerPFvvE __ZNSt9bad_allocD2Ev __ZNSt9bad_allocD1Ev __ZNSt9bad_allocD0Ev .text$_ZSt7nothrow .text$_ZSt15set_new_handlerPFvvE .text$_ZNSt9bad_allocD2Ev .text$_ZNSt9bad_allocD1Ev .text$_ZNSt9bad_allocD0Ev _emergency_buffer _emergency_used _emergency_mutex __Z20emergency_mutex_initv _ZZ24__cxa_allocate_exceptionE4once ___cxa_allocate_exception ___cxa_free_exception .text$_Z20emergency_mutex_initv .data$_ZZ24__cxa_allocate_exceptionE4once .text$__cxa_allocate_exception .text$__cxa_free_exception _globals_static _globals_key _use_thread_key __Z16get_globals_dtorPv __Z16get_globals_initv _ZZ21get_globals_init_oncevE4once __Z21get_globals_init_oncev ___cxa_get_globals_fast ___cxa_get_globals .data$use_thread_key .text$_Z16get_globals_dtorPv .text$_Z16get_globals_initv .data$_ZZ21get_globals_init_oncevE4once .text$_Z21get_globals_init_oncev .text$__cxa_get_globals_fast .text$__cxa_get_globals __ZN10__cxxabiv111__terminateEPFvvE __ZN10__cxxabiv112__unexpectedEPFvvE __ZSt10unexpectedv __ZSt13set_terminatePFvvE __ZSt14set_unexpectedPFvvE __ZSt9terminatev .text$_ZN10__cxxabiv111__terminateEPFvvE .text$_ZSt9terminatev .text$_ZN10__cxxabiv112__unexpectedEPFvvE .text$_ZSt10unexpectedv .text$_ZSt13set_terminatePFvvE .text$_ZSt14set_unexpectedPFvvE .text$_ZNSaIcEC2Ev __ZNSaIcEC2Ev .text$_ZNSaIcEC1Ev __ZNSaIcEC1Ev .text$_ZNSaIcEC2ERKS_ __ZNSaIcEC2ERKS_ .text$_ZNSaIcEC1ERKS_ __ZNSaIcEC1ERKS_ .text$_ZNSaIcED2Ev __ZNSaIcED2Ev .text$_ZNSaIcED1Ev __ZNSaIcED1Ev .text$_ZNKSaIcE7addressERc __ZNKSaIcE7addressERc .text$_ZNKSaIcE7addressERKc __ZNKSaIcE7addressERKc .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockC2Ev .data$_ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockD2Ev .text$_ZNSaIcE8allocateEjPKv __ZNSaIcE8allocateEjPKv .text$_ZNSaIcE10deallocateEPcj __ZNSaIcE10deallocateEPcj .text$_ZNKSaIcE8max_sizeEv __ZNKSaIcE8max_sizeEv .text$_ZNSaIcE9constructEPcRKc __ZNSaIcE9constructEPcRKc .text$_ZNSaIcE7destroyEPc __ZNSaIcE7destroyEPc .text$_ZNSaIwEC2Ev __ZNSaIwEC2Ev .text$_ZNSaIwEC1Ev __ZNSaIwEC1Ev .text$_ZNSaIwEC2ERKS_ __ZNSaIwEC2ERKS_ .text$_ZNSaIwEC1ERKS_ __ZNSaIwEC1ERKS_ .text$_ZNSaIwED2Ev __ZNSaIwED2Ev .text$_ZNSaIwED1Ev __ZNSaIwED1Ev .text$_ZNKSaIwE7addressERw __ZNKSaIwE7addressERw .text$_ZNKSaIwE7addressERKw __ZNKSaIwE7addressERKw .text$_ZNSaIwE8allocateEjPKv __ZNSaIwE8allocateEjPKv .text$_ZNSaIwE10deallocateEPwj __ZNSaIwE10deallocateEPwj .text$_ZNKSaIwE8max_sizeEv __ZNKSaIwE8max_sizeEv .text$_ZNSaIwE9constructEPwRKw __ZNSaIwE9constructEPwRKw .text$_ZNSaIwE7destroyEPw __ZNSaIwE7destroyEPw .data$_ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE .data$_ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE .data$_ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE .text$_ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj __ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPvjj .text$_ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi __ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocEjRi .text$_ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj __ZNSt24__default_alloc_templateILb1ELi0EE10deallocateEPvj .text$_ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj __ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillEj .text$_ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj __ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upEj .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockD1Ev .text$_ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev __ZNSt24__default_alloc_templateILb1ELi0EE5_LockC1Ev .text$_ZNS
Kevin Kofler :
Et tu dis dans ton message ./7 que ta DLL est en C pur, mais ce n'est clairement pas le cas, sinon:
1. il n'y aurait pas du __Z*.
2. tes fichiers ne s'appelleraient pas main.cpp, entree.cpp et huffman.cpp. roll
3. le compilateur appelé ne serait pas g++, mais gcc.
Post #4 :
(...)

g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

g++.exe -c entree.cpp -o entree.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

g++.exe -c huffman.cpp -o huffman.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include/c++/mingw32" -I"C:/Dev-Cpp/include/c++/backward" -I"C:/Dev-Cpp/include" -march=i686 -O3 -s -fomit-frame-pointer

windres.exe -i compson_private.rc -I rc -o compson_private.res -O coff

g++.exe main.o entree.o huffman.o compson_private.res -o "compson.exe" -L"C:/Dev-Cpp/lib"
Execution terminated
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

toujours mettre extern "C" pour importer des fonctions C dans du C++ - je crois qu'il y a un truc semblable pour importer d'autres langages aussi, non ? -
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

16

Ah, OK, je vois maintenant. smile N'empêche que tu es quand-même en train d'essayer d'importer une fonction avec une signature C++. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

17

J'espère qu'on trouvera moyen de diminuer la taille du code produit par GCC 3.3.1 (sûrement une option ou 2...) sinon => wc et je devrai repasser à GCC 2.95 sad
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.