win32 api & lib issue
Peter Hu
peterhu.peterhu at outlook.com
Thu Nov 2 10:17:37 UTC 2023
On Thursday, 2 November 2023 at 10:02:29 UTC, Imperatorn wrote:
> On Thursday, 2 November 2023 at 09:58:21 UTC, Peter Hu wrote:
>> On Thursday, 2 November 2023 at 09:13:11 UTC, Imperatorn wrote:
>>> On Thursday, 2 November 2023 at 09:08:02 UTC, Imperatorn
>>> wrote:
>>>> On Thursday, 2 November 2023 at 08:31:41 UTC, Peter Hu wrote:
>>>>> Greetings!
>>>>>
>>>>> From time to time I encountered issues on the subjected
>>>>> after I upgraded my dmd package.Given below code :
>>>>>
>>>>> [...]
>>>>
>>>> If it still doesn't work try adding this:
>>>>
>>>> ```d
>>>> pragma(lib, "user32");
>>>> pragma(lib, "comdlg32");
>>>> ```
>>>
>>> Another alternative if you're using dub is to add this in
>>> your dub.json instead:
>>>
>>> ```json
>>> "libs": ["user32", "comdlg32"]
>>> ```
>>>
>>> This seems be something related to DMD vs LDC. Because if I
>>> change the compiler to DMD I also get unresolved external
>>> symbols, but not with LDC.
>>>
>>> It seems the forwarding of directives from submodules are
>>> different.
>> Thank you.
>>
>> Below two pragma solved the isse but am confused as they are
>> already in the system path.This is the first time I have to
>> include lib files here.How come other gui programs don't have
>> to do this.
>> pragma(lib,"user32");
>> pragma(lib,"comdlg32");
>
> I'm not sure why, it works for me, but I think it could be
> something dmd does different. The pragma lib is inserted into
> the generated object file, or otherwise passed to the linker,
> so the linker automatically links in that library.
>
> I'm guessing dmd for some reason does not see it in the
> submodule, but I have no proof that's the issue, I'm just
> guessing.
Really appreciated for the help.I am learning to understand.
Not using these two pragma in the source,other in the
commandline:dmd -m64 user32.lib comdlg32.lib test.d
compiled.But---
In an IDE say PoseidonD it still failed to compile even if I
provided the library path to the compiler,I just can't understand
how come my other small programs ( based on gui libslike
DFL2,iup4D,dwt,NAppGui4D ) works fine without having to provide
pragma in the source before compiling.
More information about the Digitalmars-d-learn
mailing list