Skip to content
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

Wizard. Incorrect layout for zh_CN Simplified Chinese #61

Closed
3F opened this issue Dec 15, 2017 · 20 comments
Closed

Wizard. Incorrect layout for zh_CN Simplified Chinese #61

3F opened this issue Dec 15, 2017 · 20 comments
Milestone

Comments

@3F
Copy link
Owner

3F commented Dec 15, 2017

Mentioned here #59 (comment)

Today I installed zh_CN Simplified Chinese for system:

win10lang

However, I still can't reproduce this:

win10layout_zh_cn

chcp:

20936	x-cp20936	Simplified Chinese (GB2312); Chinese Simplified (GB2312-80)
50227	x-cp50227	ISO 2022 Simplified Chinese; Chinese Simplified (ISO 2022)

I don't have initial zh_CN .iso so it really hard to debug this while I can't see problem.


Cc: @Genteure

@3F 3F added this to the v1.6 milestone Dec 15, 2017
@3F
Copy link
Owner Author

3F commented Dec 15, 2017

@Genteure Can you send screenshot for this binaries:
https://ci.appveyor.com/project/3Fs/dllexport/build/build-74/artifacts

-pkg-link to this package:

DllExport -pkg-link https://ci.appveyor.com/api/buildjobs/tftgcu1k8mst533w/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

@Genteure
Copy link
Contributor

Genteure commented Dec 17, 2017

image
Edit: Oops.. misunderstand what you said.

@3F
Copy link
Owner Author

3F commented Dec 17, 2017

@Genteure it's old build, should be RC [ f3fb12d ]

please try again with the following command:

DllExport-pkg-link https://ci.appveyor.com/api/buildjobs/tftgcu1k8mst533w/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

@Genteure
Copy link
Contributor

image
image
Comparison:
image

@3F
Copy link
Owner Author

3F commented Dec 17, 2017

@Genteure I'm a little bit confused. Is this your changes from the second image, or it f3fb12d ? How about diff patch etc. ?

And please screenshot from this (f3fb12d):

DllExport-pkg-link https://ci.appveyor.com/api/buildjobs/tftgcu1k8mst533w/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

@Genteure
Copy link
Contributor

Command I ran:

PS > .\DllExport -version
v1.6.0.39116-RC [ f3fb12d ]
PS > .\DllExport -action Configure -pkg-link "https://ci.appveyor.com/api/buildjobs/tftgcu1k8mst533w/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg"
(then screenshot no.1)

Screenshot from VS2017 is from branch "issue61"

Personally, I think little bit offset is OK.
One of my personal project, perfect on Windows10, slightly offset (buttons bigger) on Windows7.

By the way, how can I run Wizard from source code(in Debug mode)?

@3F
Copy link
Owner Author

3F commented Dec 17, 2017

By default, the manager still will use old received packages for any new version for specific key like -pkg-link. Because it just another build but still same version. Thus you should manually reset/remove this before new trying like for command:

DllExport-pkg-link https://ci.appveyor.com/api/buildjobs/tftgcu1k8mst533w/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

or use another path via related keys for new packages.

The version from header should contains f3fb12d. Also, for checking DllExport tool, you should use -build-info instead of -version:

DllExport -build-info
    S_REL:              RC
    bSha1:              f3fb12d
    bName:              issue61

By the way, how can I run Wizard from source code(in Debug mode)?

  1. Set as StartUp Wizard project
  2. Start external program: C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
  3. Working dir: path to packages\DllExport.1.6.0-RC\tools
  4. Commands like:
"net.r_eg.DllExport.Wizard.targets" /p:wRootPath="D:\\path\\to\\project" /p:wAction="Configure" /p:wPkgPath=packages/DllExport.1.6.0-RC

@Genteure
Copy link
Contributor

PS > .\DllExport -build-info

    S_NUM:              1.6.0
    S_REV:              39116
    S_NUM_REV:          1.6.0.39116
    S_REL:              RC
    bSha1:              f3fb12d
    bName:              issue61
    bRevc:              93
    Wizard .NET:        v4.0
    Configurator .NET:  v4.0
    Configuration:      PublicRelease
    Platform:           AnyCPU
    cfgname:            Release
    revDeltaBase:       2016/10/12
    revDeltaMin:        1000
    revDeltaMax:        65534

                    :: generated by a vsSolutionBuildEvent v0.12.10.10901

image

@3F
Copy link
Owner Author

3F commented Dec 17, 2017

Good ! looks like GdiCharSet = 0 (ANSI) really helps

check this out:

23e9aaf

DllExport-pkg-link https://ci.appveyor.com/api/buildjobs/i7g7p3j6k30re2q8/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

https://ci.appveyor.com/project/3Fs/dllexport/build/build-75/artifacts

@Genteure
Copy link
Contributor

PS > .\DllExport -build-info

    S_NUM:              1.6.0
    S_REV:              41930
    S_NUM_REV:          1.6.0.41930
    S_REL:              RC
    bSha1:              23e9aaf
    bName:              issue61
    bRevc:              94
    Wizard .NET:        v4.0
    Configurator .NET:  v4.0
    Configuration:      PublicRelease
    Platform:           AnyCPU
    cfgname:            Release
    revDeltaBase:       2016/10/12
    revDeltaMin:        1000
    revDeltaMax:        65534

                    :: generated by a vsSolutionBuildEvent v0.12.10.10901
PS > .\DllExport -version
v1.6.0.41930-RC [ 23e9aaf ]

image

@3F
Copy link
Owner Author

3F commented Dec 19, 2017

Thanks, looks fixed now.

Can you also check unicode characters (i.e. fields should contain some your hieroglyphs) for this marked places:

606a6e71

606a6e7

DllExport-pkg-link https://ci.appveyor.com/api/buildjobs/7lqoxijs5bban0ff/artifacts/bin\Release\DllExport.1.6.0-RC.nupkg -action Configure

@Genteure
Copy link
Contributor

    S_NUM:              1.6.0
    S_REV:              44649
    S_NUM_REV:          1.6.0.44649
    S_REL:              RC
    bSha1:              606a6e7
    bName:              issue61
    bRevc:              95
    Wizard .NET:        v4.0
    Configurator .NET:  v4.0
    Configuration:      PublicRelease
    Platform:           AnyCPU
    cfgname:            Release
    revDeltaBase:       2016/10/12
    revDeltaMin:        1000
    revDeltaMax:        65534

                    :: generated by a vsSolutionBuildEvent v0.12.10.10901

Seems pretty good.
image

Found another issue: some useable non-english namespace can't be used by DllExport.
image

Example:

  • 中文解决方案名称 (Chinese)
  • あいうえおかきくけこ (Japanese)

Maybe open a new issue? 🤔

@3F
Copy link
Owner Author

3F commented Dec 20, 2017

I squashed this into master. Check this out 2409921:
https://ci.appveyor.com/project/3Fs/dllexport/build/build-77/artifacts

just a single change with bottom-line after 606a6e7

 Wizard/UI/Controls/ProjectItemControl.Designer.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Wizard/UI/Controls/ProjectItemControl.Designer.cs b/Wizard/UI/Controls/ProjectItemControl.Designer.cs
index 4dda7cc..1f39767 100644
--- a/Wizard/UI/Controls/ProjectItemControl.Designer.cs
+++ b/Wizard/UI/Controls/ProjectItemControl.Designer.cs
@@ -534,9 +534,9 @@
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.Controls.Add(this.panelBottomLine);
             this.Controls.Add(this.groupPlatform);
             this.Controls.Add(this.groupCompiler);
-            this.Controls.Add(this.panelBottomLine);
             this.Controls.Add(this.groupTimeout);
             this.Controls.Add(this.panelStatus);
             this.Controls.Add(this.gbProject);

Thanks again !

Found another issue: some useable non-english namespace can't be used by DllExport.

well :) this is so because when I implemented this feature directly I used rule for null-terminated sequence:
https://github.com/3F/DllExport/blob/master/NSBin/Rmod.cs#L76

But I can review this later if someone need unicode characters in namespaces.

By the way, you can also use empty/global namespaces after this - #47

@3F 3F closed this as completed Dec 20, 2017
3F added a commit that referenced this issue Dec 29, 2017
* NEW: The new embeddable lightweight manager for distribution via MvsSln & GetNuTool projects. Issue #38.
       Based on hMSBuild logic and includes GetNuTool core v1.6.1.

       Now you shouldn't use standard nuget clients anymore:
       https://www.youtube.com/watch?v=9bYgywZ9pPE

       Quick start: https://www.youtube.com/watch?v=sBWt-KdQtoc
        ==============================
        DllExport -action Configure
        ==============================

       Package from nuget.org already contains manager, but you can also get it directly.
       Latest manager: https://3F.github.io/DllExport/releases/latest/manager/
       ~18 Kb text-based embeddable batch-script that does not require powershell and dotnet-cli.

       Automatic restoring still is available but you can also use: `DllExport -action Restore`
       All available features: `DllExport -h`

       Direct links to remote package (without nuget server) via `-pkg-link {uri}` key. Issue #53.
       NuGet Server by default: nuget.org.

* NEW: The new Wizard (configurator via MvsSln). To easy configure your projects in any place. Part of Issue #38.
       MvsSln v2.0: https://github.com/3F/MvsSln

* NEW: Added support of empty/global namespaces - Issue #47.
       Use `Direct-Mod` if Cecil will not process this correctly.

* NEW: Implemented another storage for configuration: '.net.dllexport.targets'. Issue #49.

* NEW: New settings for configurator (Wizard):
        * Path to custom ILAsm.
        * Flag to keep intermediate Files (IL Code, Resources, ...).
        * Timeout of execution in milliseconds.

* NEW: Implemented automatic checking existence of a correct exported proc via Conari. Issue #55.
       Wizard controls it via `$(DllExportPeCheck)`:
        * 0x01 bit - Will check count of all planned exports from final PE32/PE32+ module.
        * 0x02 bit - Will check existence of all planned exports (IL code) in actual PE32/PE32+ module.

* NEW: Implemented PE32/PE32+ Viewer to check manually available exports from final modules. Issue #55.
       New key for manager:
        ```
        -pe-exp-list {module} - To list all available exports from PE32/PE32+ module.
        ```

        Sample:
        ```
        DllExport -pe-exp-list bin\Debug\regXwild.dll
        ```

* FIXED: Fixed target platform detection. Issue #34.
         Details: #34 (comment)

* FIXED: Fixed problem when the Post-Build event is triggered before our tool. Issue #35.
         Use this if still is needed:
         ```
         <Target Name="PostBuildEventBeforeDllExport" BeforeTargets="DllExportMod">
            ...
         </Target>
         ```

* FIXED: Fixed generation of exp + .lib via MS Library Manager for VS2017. Issue #37.
         Now it also includes processing through VsDevCmd & VcVarsAll initializer scripts.
         Use the folowing msbuild properties to override values by default:
         * $(DllExportVcVarsAll); $(DllExportVsDevCmd)

* FIXED: Fixes possible problem with multiple properties that contains *Undefined* word,
         e.g.: *Undefined*\path1;C:\path2 ...

* CHANGED: Added information about finding lib tool. Issue #44.

* CHANGED: UI. Selected platform now affects to all configurations of project instead of active as before.

* CHANGED: Now nuget package does not contain library in `lib/.../` Details in #36.

* CHANGED: Now we also distribute .zip package for work through our manager etc.
           https://github.com/3F/DllExport/releases

* NOTE: How to avoid EXP0014: RunIlAsm. The library manager still cannot be found.
        https://www.youtube.com/watch?v=zUejJ4vUPGw
        Related Issue #44

* NOTE: Quick start (Configuring, Automatic restoring, Pe-Viewer):
        https://www.youtube.com/watch?v=sBWt-KdQtoc

* NOTE: The latest text-based manager:
        https://3F.github.io/DllExport/releases/latest/manager/

           Other versions you can find from GitHub Releases:
           * https://github.com/3F/DllExport/releases

           Or get it from nuget packages starting with v1.6+

* NOTE: PE-features via Conari v1.3.0 https://github.com/3F/Conari

* KNOWN: Bug when - "Build successful but methods are not exported." Issue #59
         For today, anyone else may also try to use https://github.com/3F/Conari to avoid similar @Genteure's problem.

* DIFF(v1.6-RC):

    * FIXED: Wizard. Fixed incorrect layout for zh_CN Simplified Chinese (Thanks @Genteure). Issue #61
    * FIXED: Fixes automatic restoring the package via msbuild. Issue #62
@3F
Copy link
Owner Author

3F commented Aug 2, 2018

@Genteure, by the way, can you also check info form?

latest build:
DllExport -action Info -force -pkg-link https://github.com/3F/DllExport/releases/download/CI-build-92/DllExport.1.6.0.nupkg

@Genteure
Copy link
Contributor

Genteure commented Aug 2, 2018

image

@3F
Copy link
Owner Author

3F commented Aug 2, 2018

Thanks! Try this changes:

DllExport -action Info -force -pkg-link https://github.com/3F/DllExport/releases/download/CI-build-94/DllExport.1.6.0.nupkg

And also check this form via MsgGuiLevel variable:

(set MsgGuiLevel=0) & DllExport -action Restore -force -pkg-link https://github.com/3F/DllExport/releases/download/CI-build-94/DllExport.1.6.0.nupkg

@Genteure
Copy link
Contributor

Genteure commented Aug 2, 2018

image
image

3F added a commit that referenced this issue Aug 2, 2018
…xed possible error with `MsgGuiLevel` feature.

And added changing the level via commands:
```
(set MsgGuiLevel=0) & DllExport -action Configure -force ...
```
@3F
Copy link
Owner Author

3F commented Aug 2, 2018

@Genteure, Thank you again, the final changes merged into master. /build 95

3F added a commit that referenced this issue Aug 5, 2018
* FIXED: Fixed bug when some methods cannot be exported. Issue #59.
* FIXED: Bug 'The node is not parented by this object' when Configuring projects. Issue: #77.
* FIXED: Fixed GDI objects leak in Wizard.
* FIXED: `-msb` key cannot affect for GetNuTool section. Issue #74.
* FIXED: Bug when automatic restoring still uses default keys from manager after configuring with custom `-server`.
* FIXED: Problem with double quotes for `-packages` key.
* FIXED: Possible incorrect repetition of the relative path for `-packages` key.
* FIXED: Possible problem 'The request was aborted: Could not create SSL/TLS secure channel.'. Issue: #77.
* FIXED: Possible problem with path when `-msb` key contains round brackets,
         e.g.: `D:\C\Program Files (x86)\Microsoft Visual Studio\`...

* NEW: Implemented features for additional automation. Issue #76.
        New actions:
            * `-action Export`
            * `-action Recover`
            * `-action Unset`

        Documentation: https://github.com/3F/DllExport/wiki/DllExport-Manager#automation

* NEW: Added proxy support for manager.
        The common format: `[usr[:pwd]@]host[:port]`

        Documentation: https://github.com/3F/DllExport/wiki/DllExport-Manager#proxy

* NEW: Wizard. Added sorting an projects in main window by its installing status and by availability.
* NEW: Wizard. Added filter for list of projects in main wizard window.
* NEW: New 'Offline' versions from our packages. See GitHub Releases page.
* NEW: Added key to force update `Reference` without PublicKeyToken. Issue #65.
* NEW: Added `-force` key for manager to use aggressive behavior, e.g. like removing pkg when updating.
       Wiki: https://github.com/3F/DllExport/wiki/DllExport-Manager#receiving-new-package-version

* NEW: New action `-action Upgrade`.
       Aggregates an Update action with additions for upgrading.

            Today's an Upgrade action:
            ```
            DllExport -action Upgrade ...
            ```

            is equal to:
            ```
            DllExport -action Update -mgr-up -force ...
            ```

            Wiki: https://github.com/3F/DllExport/wiki/DllExport-Manager#updating

* CHANGED: Case sensitivity for the Action names.
* CHANGED: `-action Default` for nothing.
* CHANGED: UI layout fixes for -Info form (Thanks @Genteure, Issue #61).
* CHANGED: Allows absolute path for `-packages` key.
* CHANGED: `-sln-file` key now can affect to `-action Configure`
* CHANGED: hMSBuild tool now is also distributed inside root directory of the packages zip & nupkg.
           Use this for EXP0014 problem: "RunIlAsm. The library manager still cannot be found."
           Example: https://www.youtube.com/watch?v=zUejJ4vUPGw

* CHANGED: Updated GetNuTool v1.6.2
* CHANGED: Updated MvsSln v2.1.0
* OTHER: Some other fixes and changes with manager and wizard.
* NOTE: To upgrade configured version: `DllExport -action Upgrade ...`
* NOTE: Configuring projects: `DllExport -action Configure ...`
* NOTE: Screencasts:
            * Quick start: https://www.youtube.com/watch?v=sBWt-KdQtoc
            * Basic examples for C++ and C#: https://www.youtube.com/watch?v=9Hyg3_WE9Ks
            * Complex types and Strings: https://www.youtube.com/watch?v=QXMj9-8XJnY

* NOTE: Our actual wiki - https://github.com/3F/DllExport/wiki
        * Documentation for manager: https://github.com/3F/DllExport/wiki/DllExport-Manager
@3F
Copy link
Owner Author

3F commented Dec 17, 2019

The problem with new 1.7 beta3 layout: #128 (comment)

@theoractice, Does it look correct in beta2 for you? mine here https://twitter.com/GitHub3F/status/1205616579607715840

beta3 for me:

1.7 beta3

I pushed a very simple fix, please check it via CI build. Command like:

DllExport -force -pkg-link https://ci.appveyor.com/api/buildjobs/2019v5981m3ik7d7/artifacts/bin/Release/DllExport.1.7.0-beta3.nupkg

offline vesion: https://ci.appveyor.com/api/buildjobs/2019v5981m3ik7d7/artifacts/bin%2FRelease%2Foffline.DllExport.1.7.0.60214-beta3%2B7a190c9.zip

If still:

Can anyone with Chinese system send a PR for this case? It is hard to reproduce for me even in VM with installed zh_CN Simplified Chinese.

Our UI almost does not contain any logic, just a specified position for controls.

You need ConfiguratorForm (main container) and ProjectItemControl (leaved 'as is' from 1.6.x as an external controls) https://github.com/3F/DllExport/tree/dev/rel/1.7/Wizard/UI

Thanks!

@3F 3F reopened this Dec 17, 2019
@Genteure
Copy link
Contributor

image

Probably caused by different default font? I'm using en_US as my system language at the moment, is default font decided at install?

PS E:\> Add-Type -AssemblyName System.Drawing
PS E:\> [System.Drawing.SystemFonts]::DefaultFont

FontFamily       : [FontFamily: Name=SimSun]
Bold             : False
GdiCharSet       : 134
GdiVerticalFont  : False
Italic           : False
Name             : SimSun
OriginalFontName :
Strikeout        : False
Underline        : False
Style            : Regular
Size             : 9
SizeInPoints     : 9
Unit             : Point
Height           : 14
IsSystemFont     : True
SystemFontName   : DefaultFont

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants