1

je cherche à faire une appli windows mobile qui utilise des onglets.

Je suis pas en .net, je suis en C (même pas++) et je veux pas de MFC, ATL ou autres conneries. Je fais avec mingw32ce, PAS visual c++. Je pense pas que ça changerait grand chose d'ailleurs.

Normalement ça ressemble à ça (wm5)

myXJ

Sauriez vous comment on donne aux GUI windows mobile un look "windows mobile" et pas windows normal? Tout ce que j'arrive à avoir c'est ça:

zo1b

La ligne liée dans le fichier .rc est:

DLG_MAIN DIALOG 10, 20, 160, 170
STYLE DS_SETFONT | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_SYSMENU
CAPTION "dialog"
FONT 8, "Tahoma"
BEGIN
    CONTROL         "",IDC_TAB1,"SysTabControl32",WS_VISIBLE,5,5,5,5
END

Faut il définir des entrées spéciales dans les fichiers de ressource?

2

j'ai peur que le probleme vienne que ça tape dans des widgets qui ne sont plus la que pour la compatibilité avec de vielles appli.. Ca ressemble a du CE classique (2.0/3.0) tes widgets alors que tu table pour du WindowsMobile, qui ne sont pas tout a fait la meme chose..
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

3

Je ne sais pas comment ça marche sous Windows Mobile, mais sous Windows classique ces histoires d'apparence des widgets dépendent de la présence d'un fichier ou d'une ressource Manifest, et/ou de la version de la bibliothèque de contrôles à laquelle tu fais appel.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

4

Bon après analyse de xnview pocket avec Resource Hacker, il n'y a tout simplement pas d'appel à ce controle. Ca doit être un feature spécial winmob.

5

On rencontre souvent ce "probleme" avec de vielles appli WinCE3
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

6

7

Et le SendMessage décrit dans ton lien, il ne marche pas?
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é

8

non, d'ou le:
squalyl (./6) :
ça aurait été trop beau que ça marche :'(


en fait j'ai trouvé un taskmanager pour windows mobile qui permet d'inspecter les fenêtres, et y'a un STYLE bizarre sur la fenêtre du SysTabControl32 utilisé pour le panneau de config wm (c'est bien cette classe qui est utilisée)

Pour le moment j'ai TCS_BOTTOM | WS_VISIBLE | WS_TABSTOP ce qui produit 0x54010002, alors que celui du panneau de conf a une valeur 0x5483000A

Je veux essayer de comprendre le flag qui manque avant de recopier sans rien comprendre.

9

Heu mais juste au cas où tu veux pas recopier sans rien comprendre pour vérifier que c'est bien ça qui fait la différence, et pas autre chose ? tongue
(Et visiblement, t'as pas qu'un seul style qui manque là grin)
Pour le reste, les styles officiels doivent être déclarés dans le .h kivabien, et une bonne partie d'entre eux doit même partager les valeurs avec celles de Windows pas-mobile (à vérifier, mais c'est plutôt dans le genre de Microsoft ^^)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

10

je faisais autre chose cheeky

:'(

marche toujours pas, même avec les styles,

et pourtant le sendmessage marche:

<01>Jan 29 01:54:05 CCM_GETVERSION returns 0
<01>Jan 29 01:54:05 CCM_SETVERSION(6)
<01>Jan 29 01:54:05 CCM_GETVERSION returns 6

fuck!

11

Peut-être que ça ne fonctionne qu'à la création du contrôle, et que tu ne peux pas changer le style après-coup ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

12

c'est ça que j'ai testé. Mais comme ça me gêne pas fonctionnellement et que c'est que du cosmétique, je laisse tomber pour l'instant. Je finirai par trouver un exemple de fichier resource, ou demander a qn qui l'a fait, style xnview par exemple.

J'ai d'autres problèmes plus sérieux là.

https://sourceforge.net/tracker/index.php?func=detail&aid=2942499&group_id=173455&atid=865514

https://sourceforge.net/tracker/?func=detail&aid=2942500&group_id=173455&atid=865514

13

"achdawaï" lol
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

14

15

Hmm, est-ce que tu appelles InitCommonControls[Ex] explicitement dans ton programme, ou est-ce fait de manière automatique ?
Sinon tu pourrais balancer un des .exe des programmes pour lesquels ça marche (au pif, xnview vu que tu en parles cheeky )
Après, je n'ai rien d'autre à dire si ce n'est qu'utiliser des outils open source pour développer sous windows c'est un peu comme accepter de manger la pomme offerte par la méchante sorcière quand tu t'appelles blanche neige. tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

16

explicitement oui, avant le dessin du dialogue principal.
Il faut le faire a quel moment? dans chaque WM_INITDIALOG?

sinon pourquoi je devrais me taper visual studio et tout le bordel?

le dernier vs express téléchargeable permet-il de développer du code C(++) natif non managé pour windows mobile, en plus?

je préfère prendre du temps et participer au développement d'un mingw-ce.

17

squalyl (./16) :
explicitement oui, avant le dessin du dialogue principal.Il faut le faire a quel moment? dans chaque WM_INITDIALOG?
Nonon, juste une fois tout au début du programme ^^
M'enfin perso j'ai l'habitude d'utiliser des outils qui le font à ma place donc j'y fais jamais attention cheeky
sinon pourquoi je devrais me taper visual studio et tout le bordel?
Disons que tu aurais des bugs en moins et des projets par défaut *peut-être* mieux et qui pourraient t'éviter certains problèmes (Mais je ne développe pas pour windows mobile donc je ne m'avancerai pas trop là dessus ^^)
le dernier vs express téléchargeable permet-il de développer du code C(++) natif non managé pour windows
Oui, mais
mobile, en plus?
Non sad
En fait la vraie réponse doit être un peu plus compliquée mais là encore je ne développe pas sur windows mobile donc... Tout ce que je peux te dire c'est que si tu arrives à installer la chaîne d'outils sans l'IDE, tu devrais quand même arriver à quelque chose, mais je ne sais pas si c'est possible pour le SDK Windows Mobile sad
je préfère prendre du temps et participer au développement d'un mingw-ce.
Intention louable smile
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

18

MS n'a pas sorti d'équivalent de l'ancien eMbedded Visual Studio ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

Je crois pas ^^
Normalement le nouveau Visual Studio (les versions ≥ 2005 quoi) est devenu un IDE polyvalent adapté à tous types de développements, donc ils n'ont plus besoin de sortir de versions spécifiques à tel ou tel type de développement, et ils utilisent le Shell (n'importe qui peut l'utiliser, à vrai dire wink ) pour offrir leurs autres produits.
Le point négatif, c'est que les éditions Express sont des versions bridées de l'IDE/Shell qui ne supportent pas les extensions nécessaires à un SDK tel que celui de Windows Mobile. Le seul SDK compatible avec une édition express de Visual Studio est XNA... (D'ailleurs au début il ne supportait pas Visual Studio > C# Express cheeky )
Du coup pour utiliser le SDK Windows Mobile, il faudrait nécessairement une version complète de Visual Studio (Standard ou Professionnelle, à voir), c'est assez con...
(Reste à savoir si le SDK peut s'installer sans Visual Studio ^^)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

20

Et bah, voilà une des raisons pour lesquelles MinGW existe et est si populaire, les outils "officiels" gratuits disparaissent et reviennent de manière imprévisible et tout le monde n'a pas forcément envie de payer pour la version intégrale! roll

De plus, MinGW permet la cross-compilation depuis GNU/Linux (chose à essayer ici, d'ailleurs, les bogues de MinGW-CE du ./12 semblent tous être spécifiques à un host MinGW).
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é

21

oui c'est ça que je comprends pas. Surtout le coup de "ar" qui ne marche pas non plus avec le ar du mingw normal. Le code pourrait avoir une influence sur la validité du fichier .a résultant? ça m'étonne.

pour ld j'ai investigué ça aurait l'air lié avec les dossiers temporaires de windows, mais je sais pas a qui il faut s'adresser. Il me faudrait un double guru ld ET mingw.

22

faudrait aussi voir si je peux installer le platform sdk WM de microsoft sans visual studio et l'utiliser depuis codeblocks. Pas sur que ça marche si il détecte mon VS express ou aucun VS.

23

Tes gourous, tu les trouveras dans le projet MinGW. smile Sinon, il y a aussi le fork mingw-w64 qui veut remplacer MinGW même pour le 32 bits, tu trouveras peut-être les experts que tu cherches là bas aussi.
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é

24

25

en tout cas j'ai trouvé le beug de -g:

C:\MinGW>gcc3\bin\gdb c:\MinGW\cross41-debug\bin/arm-mingw32ce-ld.exe
GNU gdb (GDB) 7.0.1
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from c:\MinGW\cross41-debug\bin/arm-mingw32ce-ld.exe...done.
< C:\DOCUME~1\squalyl\LOCALS~1\Temp/ccfo5YRa.o -lmingw32 -lgcc -lceoldname -lmingwex -lcoredll -lcoredll -lmingw32 -lgcc -lceoldname -lmingwex -lcoredll
Starting program: c:\MinGW\cross41-debug\bin/arm-mingw32ce-ld.exe -v -Bdynamic -o test.exe c:/mingw/cross41-debug/bin/../lib/gcc/arm-mingw32ce/4.1.0/../../../..
/arm-mingw32ce/lib/crt3.o -Lc:/mingw/cross41-debug/bin/../lib/gcc/arm-mingw32ce/4.1.0 -Lc:/mingw/cross41-debug/bin/../lib/gcc -Lc:/mingw/cross41-debug/bin/../li
b/gcc/arm-mingw32ce/4.1.0/../../../../arm-mingw32ce/lib C:\DOCUME~1\squalyl\LOCALS~1\Temp/ccfo5YRa.o -lmingw32 -lgcc -lceoldname -lmingwex -lcoredll -lcoredll -
lmingw32 -lgcc -lceoldname -lmingwex -lcoredll
[New Thread 556.0xe48]
GNU ld (GNU Binutils) 2.20.51.20091016

Program received signal SIGSEGV, Segmentation fault.
0x77c178ac in strlen () from C:\WINDOWS\system32\msvcrt.dll
(gdb) bt
#0  0x77c178ac in strlen () from C:\WINDOWS\system32\msvcrt.dll
#1  0x00437f78 in make_a_section_from_file (abfd=0x23fb00, hdr=0xfaf364, target_index=4) at /home/squalyl/projects/cegcc/src/binutils/bfd/coffgen.c:93
Backtrace stopped: frame did not save the PC
(gdb) list
177     /home/squalyl/projects/cegcc/src/binutils/ld/ldmain.c: No such file or directory.
        in /home/squalyl/projects/cegcc/src/binutils/ld/ldmain.c
(gdb)

26

http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/coffgen.c?annotate=1.76&cvsroot=src
                          86:          strings = _bfd_coff_read_string_table (abfd);
                          87:          if (strings == NULL)
1.36          amodra      88:            return FALSE;
1.1           rth         89:          /* FIXME: For extra safety, we should make sure that
                          90:              strindex does not run us past the end, but right now we
                          91:              don't know the length of the string table.  */
                          92:          strings += strindex;
1.76         |nickc       93:          name = (char *) bfd_alloc (abfd,
             |            94:                                      (bfd_size_type) strlen (strings) + 1);
1.1           rth         95:          if (name == NULL)
1.36          amodra      96:            return FALSE;
1.1           rth         97:          strcpy (name, strings);

Hmmm… Le FIXME est suspect.
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é

27

c'est exactement ce qui ce produit apparemment:

$3 = 8976241
(gdb) print strings
$4 = 0xacf3e1 <Address 0xacf3e1 out of bounds>
(gdb) print (strings-strindex)
$5 = 0x23fc70 "\r­\255\272.debug_abbrev"
(gdb) print buf
$6 = "8976241"
(gdb) print abfd
$7 = (bfd *) 0x23fb00
(gdb) print *abfd
$8 = {id = 2, filename = 0x232638 "C:\DOCUME~1\squalyl\LOCALS~1\Temp/ccfo5YRa.o", xvec = 0x4a0d00, iostream = 0x77c2fd20, iovec = 0x49f680,
  lru_prev = 0x23f388, lru_next = 0x23f5d0, where = 2508, mtime = 0, ifd = 0, format = bfd_object, direction = read_direction, flags = 57, origin = 0,
  proxy_origin = 0, section_htab = {table = 0x14cd018, newfunc = 0x42923c <bfd_section_hash_newfunc>, memory = 0x23f6c8, size = 251, count = 3,
    entsize = 184, frozen = 0}, sections = 0x14cd418, section_last = 0x14cd588, section_count = 3, start_address = 0, symcount = 29, outsymbols = 0x0,
  dynsymcount = 0, arch_info = 0x4a3da0, arelt_data = 0x0, my_archive = 0x0, archive_next = 0x0, archive_head = 0x0, nested_archives = 0x0, link_next = 0x0,
  archive_pass = 0, tdata = {aout_data = 0x14cc020, aout_ar_data = 0x14cc020, oasys_obj_data = 0x14cc020, oasys_ar_data = 0x14cc020,
    coff_obj_data = 0x14cc020, pe_obj_data = 0x14cc020, xcoff_obj_data = 0x14cc020, ecoff_obj_data = 0x14cc020, ieee_data = 0x14cc020,
    ieee_ar_data = 0x14cc020, srec_data = 0x14cc020, verilog_data = 0x14cc020, ihex_data = 0x14cc020, tekhex_data = 0x14cc020, elf_obj_data = 0x14cc020,
    nlm_obj_data = 0x14cc020, bout_data = 0x14cc020, mmo_data = 0x14cc020, sun_core_data = 0x14cc020, sco5_core_data = 0x14cc020, trad_core_data = 0x14cc020,
    som_data = 0x14cc020, hpux_core_data = 0x14cc020, hppabsd_core_data = 0x14cc020, sgi_core_data = 0x14cc020, lynx_core_data = 0x14cc020,
    osf_core_data = 0x14cc020, cisco_core_data = 0x14cc020, versados_data = 0x14cc020, netbsd_core_data = 0x14cc020, mach_o_data = 0x14cc020,
    mach_o_fat_data = 0x14cc020, plugin_data = 0x14cc020, pef_data = 0x14cc020, pef_xlib_data = 0x14cc020, sym_data = 0x14cc020, any = 0x14cc020},
  usrdata = 0x0, memory = 0x23f6a0, cacheable = 1, target_defaulted = 0, opened_once = 1, mtime_set = 0, no_export = 0, output_has_begun = 0, has_armap = 0,
  is_thin_archive = 0}
(gdb) print hdr
$9 = (struct internal_scnhdr *) 0xfaf364
(gdb) print *hdr
$10 = {s_name = "/8976241", s_paddr = 0, s_vaddr = 0, s_size = 145, s_scnptr = 572, s_relptr = 0, s_lnnoptr = 0, s_nreloc = 0, s_nlnno = 0,
  s_flags = 1108344832, s_align = 21807152, s_page = 20 '\024'}
(gdb) print target_index
$11 = 4
(gdb) print flags
$12 = 1
(gdb)

28

Bon apparemment Dave Korn se balade sur les mailing list de cegcc, et " Looks like a job for me. I'll update my cegcc and figure out what's going on." love

29

bon d'après ma moulinette les fichiers générés par ar sous mingw sont invalides cheeky

on va voir.

30

Dave Korn a dit:
The FIXME is stating that it would be nice if we could detect this kind of
malformed input here, but we (for structural reasons) can't. The problem has
to be either that the assembler generated a bogus .o file in the first place, or that ld is somehow corrupting or misreading that section header.


et chez lui ça marche sad