VOGONS


First post, by deeped

User metadata
Rank Newbie
Rank
Newbie

Hey ppl,

I need some guy who are experted in C++ builder 😀 Im trying to compile a part of Dosbox (the Adlib part and what it needs) but after a minute-longer (!!) compling I get:

pic.cpp, #include <list> = F1005 Include files nested too deep

😒 anyone met this error? I set the enums threated as ints and some compatible options. What to do now? Any idea?

Reply 1 of 33, by deeped

User metadata
Rank Newbie
Rank
Newbie

ok no answer now lets try an other developer tool, called Microsoft Visual C++ 6 😊 when I try to compile I get tons of "unresolved symbols" could anyone give me further information how to load DosBox to MVC?

Reply 3 of 33, by Kippesoep

User metadata
Rank Oldbie
Rank
Oldbie

But... MSVC6 is only 10 years old!

Anyway, deeped, both those compilers are so old that they predate the C++ standard and don't (couldn't!) implement it fully. DOSBox makes use of some features that aren't supported by the old compilers. That's before you take any compiler bugs into account.

Try getting a newer version of Visual C++, such as Visual C++ 2008 Express, which is freely downloadable from the Microsoft website and can compile DOSBox just fine (provided you've installed the proper libraries [which can be quite an exercise in and of itself]).

My site: Ramblings on mostly tech stuff.

Reply 8 of 33, by deeped

User metadata
Rank Newbie
Rank
Newbie

ok then theres an other problem 😀 (the topic should be renamed now)

so it is Microsoft Visual Studio 2005. WD, you said if I want to create my own FM emulator, the "entry point" is the OPL_Write() function in adlib.cpp.

I have some example (working) program for adlib using, a very simple. So it must be changed - instead of writing the 2 ports. So, OPL_Write() in adlib.cpp, and - I know its very primitive - pressing F7 and copy the .c, .h, .cpp files what the program needs. Im finished with inout, mem, mixer, ymf262 etcetcetc and after linkink it drops:

myprogram.obj : error LNK2019: unresolved external symbol "void __cdecl PIC_AddEvent(void (__cdecl*)(unsigned int),float,unsigned int)" (?PIC_AddEvent@@YAXP6AXI@ZMI@Z) referenced in function "void __cdecl OPL2::TimerHandler(int,double)" (?TimerHandler@OPL2@@YAXHN@Z)

yay. 😒

Reply 10 of 33, by deeped

User metadata
Rank Newbie
Rank
Newbie

🤣... you dont understand.

Again: I copied all files and it dropes a linker error. It doesnt mean I dont need PIC_AddEvent. Moreover, I dont even know what it does. And it dropes tons of unresolved symbols: "unsigned char adlib_commandreg" (?adlib_commandreg@@3EA), "unsigned int PIC_Ticks" (?PIC_Ticks@@3IA), "void __cdecl E_Exit(char const *,...)" blahblahblah

Reply 16 of 33, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Then you seriously messed up your build system, the sources, or something
in-between all that.
Get your stuff straight. As you "only" want adlib emulation, take the fmopl.c
and write your code around it. How it is interfaced with is in adlib.cpp.

Reply 18 of 33, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

uhm use adlib.cpp as guideline on how to interface with it, you can't simply copy it and assume it works as it is a part of dosbox.
not a module which can be loaded later or so.

Water flows down the stream
How to ask questions the smart way!