-
Notifications
You must be signed in to change notification settings - Fork 1.7k
added Module32First and Module32Next to Kernel32 #552
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
twall
merged 1 commit into
java-native-access:master
from
mlfreeman2:kernel32-additional-3
Dec 10, 2015
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that because of these fields, this
Structure
definition may only be used with the-W
version of the functions which use it.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The official MSDN page says these fields are TCHAR.
Mappings.md says that TCHAR could map to char or byte.
If I convert these two fields to byte arrays (and, I figure, also double the size of both arrays), would that make this work with both the Unicode and Ansi version of Module32First and Module32Next?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rather not hack it. TCHAR means we need two separate structures here unless @twall has a better solution? I vote for
MODULEENTRY32A
andMODULEENTRY32W
with tests for both and theUtil
functions using theW
version.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviving a couple of comments that got hidden by an outdated diff:
@twall suggested this in a now hidden comment:
I see the
com.sun.jna.FunctionMapper
interface but I'm unsure how I could use it surgically (without potentially impacting the rest ofKernel32
).Is there something I should mark up
Module32First
andModule32Next
with (e.g. an annotation)? I'd hate to break something else inKernel32
.Last but not least, note that the Unicode functions do end in
-W
but the ANSI versions do not end in-A
according to MSDN.Duplicating what I have here and adding a
W
to the end where appropriate is probably the easiest, quickest, and least likely to have a weird side effect.@dblock and @twall - I await your decision.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am +1 for the easiest, quickest and least likely to have side effects. I say go for it, I don't think @twall will disagree :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Keep the same implementation but add the -W to make it obvious. Making the struct compatible or available to ANSI version is not important.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What DB said :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added
W
toModule32First
,Module32Next
, andMODULEENTRY32
, rebased against master, and, well, take a look and let me know what else it needs.