digitalmars.D.learn - Some issues (bugs?) with generated header files
- Andre (46/46) Apr 05 2014 Hi,
- evilrat (11/63) Apr 05 2014 i have little info about this, but let me clear something for you.
- Andre (4/13) Apr 05 2014 Thanks a lot for clarification.
- evilrat (16/24) Apr 05 2014 the problem with this that your code doesnt specify neither auto
- evilrat (2/7) Apr 05 2014 oops. this of course should be like normal function.
Hi,
i want to generate header (di) files for a library I developed
and faced some issues.
The project structure is:
source
-wba
--com
---defintions.d
---...
--dispatcher.d
--...
--package.d
MonoDevelop generated following statement for me:
C:\D\dmd2\windows\bin\dmd.exe -debug -gc "source\wba\com\definitions.d"
"source\wba\com\docHostUIHandler.d" "source\wba\com\oleClientSite.d"
"source\wba\com\oleInPlaceFrame.d" "source\wba\com\oleInPlaceSite.d"
"source\wba\com\storage.d" "source\wba\com\webBrowserEvents2.d"
"source\wba\dispatcher.d" "source\wba\main.d"
"source\wba\objectForScripting.d" "source\wba\package.d"
"source\wba\wbWrapper.d" "source\wba\webbrowser.d"
"source\wba\webBrowserForm.d" "-IC:\D\dmd2\src\druntime\import"
"-IC:\D\dmd2\src\phobos" "-IC:\D\lib\WindowsAPI" -lib "-odobj\Header"
"-ofJ:\Workspace\Libraries\WebBrowserApplication\bin\Header\wba.lib" -H
3 issues:
1) While using the header files in another project, the package.di file
does not work as expected. I cannot use statement: import wba;
main.d(3): Error: module wba is in file 'wba.d' which cannot be read
It only works if I rename package.di to package.d
2) property methods doesn't work with header files.
For this coding:
property docHostUIHandler()
{
return this._docHostUIHandler;
}
This di coding was created:
property docHostUIHandler();
While using in another project these errors are raised for
the line in the di coding:
Error: function declaration without return type. (Note that constructors
are always named 'this')
Error: no identifier for declarator docHostUIHandler()
3) How can I specify the output folder for the di files
and also specify that the same folder structure is used as
described above (wba, wba/com)
Kind regards
André
Apr 05 2014
On Saturday, 5 April 2014 at 10:00:13 UTC, Andre wrote:
Hi,
i want to generate header (di) files for a library I developed
and faced some issues.
The project structure is:
source
-wba
--com
---defintions.d
---...
--dispatcher.d
--...
--package.d
MonoDevelop generated following statement for me:
C:\D\dmd2\windows\bin\dmd.exe -debug -gc
"source\wba\com\definitions.d"
"source\wba\com\docHostUIHandler.d"
"source\wba\com\oleClientSite.d"
"source\wba\com\oleInPlaceFrame.d"
"source\wba\com\oleInPlaceSite.d" "source\wba\com\storage.d"
"source\wba\com\webBrowserEvents2.d" "source\wba\dispatcher.d"
"source\wba\main.d" "source\wba\objectForScripting.d"
"source\wba\package.d" "source\wba\wbWrapper.d"
"source\wba\webbrowser.d" "source\wba\webBrowserForm.d"
"-IC:\D\dmd2\src\druntime\import" "-IC:\D\dmd2\src\phobos"
"-IC:\D\lib\WindowsAPI" -lib "-odobj\Header"
"-ofJ:\Workspace\Libraries\WebBrowserApplication\bin\Header\wba.lib"
-H
3 issues:
1) While using the header files in another project, the
package.di file does not work as expected. I cannot use
statement: import wba;
main.d(3): Error: module wba is in file 'wba.d' which cannot be
read
It only works if I rename package.di to package.d
2) property methods doesn't work with header files.
For this coding:
property docHostUIHandler()
{
return this._docHostUIHandler;
}
This di coding was created:
property docHostUIHandler();
While using in another project these errors are raised for
the line in the di coding:
Error: function declaration without return type. (Note that
constructors are always named 'this')
Error: no identifier for declarator docHostUIHandler()
3) How can I specify the output folder for the di files
and also specify that the same folder structure is used as
described above (wba, wba/com)
Kind regards
André
i have little info about this, but let me clear something for you.
- interface generation is outdated/broken
- .di files should be avoided now, this is why import looking for
.d only, but idk why.
- to avoid property issue you can try adding export
specifier("export property someProperty()")
-Hd flag allows specify header location, -Hf specify name for
example if you want to write them to directory named "imports"
you call "dmd myfile.d -Hdimports" which save myfile.d to
imports/myfile.di
Apr 05 2014
Am 05.04.2014 12:49, schrieb evilrat:
i have little info about this, but let me clear something for you.
- interface generation is outdated/broken
- .di files should be avoided now, this is why import looking for .d
only, but idk why.
- to avoid property issue you can try adding export specifier("export
property someProperty()")
-Hd flag allows specify header location, -Hf specify name for example if
you want to write them to directory named "imports" you call "dmd
myfile.d -Hdimports" which save myfile.d to imports/myfile.di
Thanks a lot for clarification.
Kind regards
André
Apr 05 2014
On Saturday, 5 April 2014 at 10:00:13 UTC, Andre wrote:
2) property methods doesn't work with header files.
For this coding:
property docHostUIHandler()
{
return this._docHostUIHandler;
}
This di coding was created:
property docHostUIHandler();
the problem with this that your code doesnt specify neither auto
nor other return type.
// not recommended, actual type unknown to users
property auto docHostUIHandler()
{
return this._docHostUIHandler;
}
// recommended, manual type
property HostUIHandlerType()
{
return this._docHostUIHandler;
}
p.s. language reference recommends also put underscore at end
instead front, prepending underscore may be used by compiler
generated stuff resulting in name clashes.
Apr 05 2014
On Saturday, 5 April 2014 at 10:55:19 UTC, evilrat wrote:
// recommended, manual type
property HostUIHandlerType()
{
return this._docHostUIHandler;
}
oops. this of course should be like normal function.
Apr 05 2014









Andre <andre s-e-a-p.de> 