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