Hi Christof, I'm not a specialist of Windows so I can miss something important. How do you specify the target machine? Are you sure you compiled against the 64bit version of pd.lib? Because I didn't check the symbols of the 32 bit distribution, perhaps they are available.
Another question: I assumed that **_WIN32** must be defined (isn't it?) and so **PD_INTERNAL** must also be used if we want to export properly the function `setup_class()` using **EXTERN**. I see that you don't define any of these constants, are they useless in your case? And why? 2018-05-23 13:40 GMT+02:00 Christof Ressi <christof.re...@gmx.at>: > this is odd. I made a simple Pd external which uses s_list and s_signal > with MSVC in two versions: > one links against Miller's pd.lib, the other links against the pd.lib I > get when building from source with MinGW and autotools. > Both versions compile, link and load just fine with either Pd version. > > I'm using the Developer command prompt, these are my commands: > > > cl /W3 /DNT /DPD /nologo /I. /IPDSOURCEPATH /c testobj.c > > link /dll /export:testobj_setup testobj.obj oldnames.lib kernel32.lib > PDBINPATH\pd.lib > > Christof > > > Gesendet: Mittwoch, 23. Mai 2018 um 12:01 Uhr > Von: "Pierre Guillot" <guillotpier...@gmail.com> > An: "IOhannes m zmoelnig" <zmoel...@iem.at> > Cc: pd-dev <pd-dev@lists.iem.at> > Betreff: Re: [PD-dev] pd.lib & msvc - missing symbols > > > however, it would be nice if the shipped pd.lib (which uses the MinGW > > toolchain and doesn't have the MSVC tools) would contain all the > > required symbols. > > Yes, what seems strange is that s_list and s_signal were defined in the > shipped pd.def but not in pd.lib... > > > otoh, i do think that those global variables (`e.g. `s_float`) shouldn't > > be used in the first place: use the `gensym()` equivalents. > > > Why? > I used these variable because I assumed that they are more efficient than > using `gensym()` (and as they are defined EXTERN I also assumed that they > can be used). > But yes perhaps a better solution would be to generate and store the > symbols in the new method of the object using `gensym()` (and it will be > the same but for the sustainability of old codes, these symbols must be > included). > > Thanks > > 2018-05-23 11:38 GMT+02:00 IOhannes m zmoelnig <zmoel...@iem.at[mailto: > zmoel...@iem.at]>:On 2018-05-23 11:29, Pierre Guillot wrote: > > But there are missing symbols: on Windows > > 64bit I can't use s_list and s_signal for example. I solved the issue by > > creating my own pd.lib and pd.def from pd.dll. So if you encounter the > same > > issue, you can simply do > > > >> dumpbin /EXPORTS pd.dll > pd.exports > >> lib /def:pd.def /out:pd.lib > > the problem with this is that it requires MSVC tools > now, the target audience are MSVC-users (who else needs that pd.lib...), > so they already have it. > however, it would be nice if the shipped pd.lib (which uses the MinGW > toolchain and doesn't have the MSVC tools) would contain all the > required symbols. > > otoh, i do think that those global variables (`e.g. `s_float`) shouldn't > be used in the first place: use the `gensym()` equivalents. > > gasdmr > IOhannes > > > I hope it could help some of you. Perhaps we could add a documentation > > somewhere about it... (I don't know if it useful...) I can help if > needed. > > > > > _______________________________________________ > Pd-dev mailing list > Pd-dev@lists.iem.at[mailto:Pd-dev@lists.iem.at] > https://lists.puredata.info/listinfo/pd-dev > _______________________________________________ Pd-dev mailing list > Pd-dev@lists.iem.at https://lists.puredata.info/ > listinfo/pd-dev[https://lists.puredata.info/listinfo/pd-dev] >
_______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev