กองทุน SPDR GOLD SHARES
ถือทองก่อนหน้า
ถือทองล่าสุด
0.00
*หน่วยตัน / ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
สถิติกองทุน SPDR
ราคาทองคำแท่ง 96.5%
ราคาอ้างอิงล่าสุดจากสมาคมค้าทองคำ
ครั้งที่
ราคาก่อนหน้า
ราคาล่าสุด
0
(หน่วย บาท*) / อัปเดตล่าสุดเมื่อวันที่ 13 ก.ค. 2566 เวลา 13:04 น.
สถิติราคาทองคำ ไทย

มีใครทำ DLL จาก C# ได้บ้างครับ

  • 9 replies
  • 2,885 views
มีใครทำ DLL จาก C# ได้บ้างครับ
« เมื่อ: 15, มีนาคม 2020, 02:08:02 PM »

ผมทำ DLL โดยใช้ C++ ได้ ไม่มีปัญหาครับ
ใช้ C++ ทำ DLL แฃ้วมีฟังชั่นอยู่ใน DLL และสามารถ import เข้า MT4/MT5 ได้

แต่ที่ต้องการใช้งานมันเป็น C# ครับ  ต้องใช้ C# เท่านั้นครับ

Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #1 เมื่อ: 15, มีนาคม 2020, 02:52:24 PM »
ติดปัญหาตรงไหนครับ

Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #2 เมื่อ: 15, มีนาคม 2020, 03:01:50 PM »
อ้างจาก: เข่ง ที่ 15, มีนาคม  2020, 02:52:24 PM
ติดปัญหาตรงไหนครับ

ครับท่าน เดี่ยวเอา error ที่จดไว้มาให้ดูครับ พอดี อกมาธุระข้างนอก

ปัญหาคือใน dll มันไม่มี function ที่ทำครับ และไม่สามารถ import เข้า mt5 ได้ครับ

Compile แล้วไม่มี error ครับ

เอาโปรแกรม dll viwer เปิดดูแล้วอันที่ทำจาก c++ มีฟังชั่นนข้างในครับ แต่ c# ไม่มีอะไรเลยว่างครับ

ใช้ c++  ทำได้  แต่ฟังชั่นที่จะใช้มันมีแต่ใน c# ครับ

ผมใช้ visual studio 2019 ครับ  dll ใช้ unmanagedexport ครับ
ลอง 2017 แลเวก็ไม่ได้เหมือนกันครับ


Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #3 เมื่อ: 15, มีนาคม 2020, 04:12:52 PM »
อ้างจาก: เข่ง ที่ 15, มีนาคม  2020, 02:52:24 PM
ติดปัญหาตรงไหนครับ




เครื่องลงอะไรบ้าง
ลง Visual Studio 2017  และ Visual Studio 2019
แล้วก็ลง Build Tools for Visual Studio 2015
กับ Build Tools for Visual Studio 2019

ไฟล์โปรเจคลง  UnmanagedExports ของ RGiesecke
(ลองลง DllExport อีกเวอรชั่นก็ใช้ไม่ได้ ใช้ได้แต่ของ RGiesecke)

ลองเอา code จากหลายๆ ที่มาใช้ ก็ไม่ผ่าน
ไม่ผ่านหมายถึง ทำออกมาแล้ว ไม่มีฟังชั่น DLL ข้างในครับ

https://github.com/shturm/MetaTrader5-CSharp-VCpp-Example

ใน github ตัวนี้ไฟล์ CSharp เป็น C# ทำไม่ผ่าน แต่ VCpp (C++) ใช้ได้ปกติ ไม่มีปัญหาครับ

https://sites.google.com/site/robertgiesecke/
https://github.com/3F/DllExport

https://www.mql5.com/en/articles/249
https://www.mql5.com/en/articles/249
ลองหมด ยังใช้ไม่ได้ครับ

ลองทำใหม่หมด แบบเปิด project ใหม่ แล้วสร้าง code ใหม่ ติดตั้ง UnmanagedExports  ใหม่ ก็ใช้ไม่ได้ครับ


ใน Visual Studio 2019 มี่ที่เก็บ log เก่าๆ ทั้งหมดบ้างใหมครับ ผมไม่ได้จดไว้เลยครับ


ปัญหาที่เคยเจอมาก่อนหน้านี้

packages\UnmanagedExports.1.2.7\tools\RGiesecke.DllExport.targets(58,3): error : Microsoft.Build.Utilities.ToolLocationHelper could not find ildasm.exe.


ล่าสุด ตอนนี้ compile แล้วไม่มี error ครับ แต่ก็ใช้ไม่ได้
compile ใช้ C++ ในโปรเจคเดียวกันได้ไม่มีปัญหาครับ

เอาโปรแกรม  DLL Export Viewer v1.66  เปิดดู
พบกว่า ทุกตัวที่ลองใช้ C++ ทำมีฟั่งชั่น โชวออกมา ทั้งหมด และเอาไปใช้ได้

แต่ทุกตัวที่ใช้ C# ทำกลับไม่มีอะไรเลย  เอาไปใส่ MT4 และ MT5 ก็ import เข้าไม่ได้ และ ไม่เจอ ฟั่งชั่นที่ใส่ไว้ เรียกมาไม่ขึ้นครับ

การคอมไพล  debug เป็น x64 แล้วก็ไม่ได้  และสลับลองเป็น x86  ก็ยังเอาไปใช้ไม่ได้ครับ   DLL ว่างๆ เลย ไม่มีฟั่งชั่นข้างในครับ


ถ้าใช้  C++ ได้น่าจะจบไปแล้ว  แต่เป็น C#  ดูใน  stackoverflow ทำตามก็ยังใช้ไม่ได้ครับ

ปล. ผมไม่ใช่โปรแกรมเมอร์อาชีพนะครับ มือสมัครเล่นครับ



Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #4 เมื่อ: 15, มีนาคม 2020, 05:09:19 PM »
ของผมได้นะ แต่ string ออกมาเป็นภาษาจีน  **11
ลองเอา project ผมไปเปิดดูก่อนว่าได้ไหม

Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #5 เมื่อ: 15, มีนาคม 2020, 06:21:33 PM »

ขอบคุณมากครับท่านเข่ง

ทำได้แล้วครับ ไฟล์โปรเจคของท่านใช้ได้ครับ   (งง ของฝรั่งใช้ไม่ได้สักอันเลยครับ) ออกมาเป็นภาษาจีนเหมือนกันครับ

ต้องคอมไพลเป็น x64  bit เท่านั้น   ใช้ Any CPU กับ x86 ไม่ได้   (ตอนใส่อันที่ไม่ได้ มันก็ฟ้องบอกว่าไม่ใช่ 64 bit)

อันนี้ผมทำใช้ใน MT5 นะครับ


ที่ใช้ C# เพราะผมจะลองใช้    ML.NET Model Builder tool ครับท่าน เอามาทำอีเอครับ

http://aka.ms/mlnettemplates


ฝากท่านเข่ง ลองเล่นดูหน่อยครับ เผื่อมีปัญหา จะได้มีคนช่วยตอบได้ ทำคนเดียวไม่สนุกเลย  (งมคนเดียว 555)





Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #6 เมื่อ: 15, มีนาคม 2020, 06:46:36 PM »


สอบถามอีกหน่อยครับ ผมจะลองทำ project ใหม่ เลือกเป็น libraly class แบบใหนครับ .Net standard .Netframework, .Netcore หรือตัวใหนครับท่าน


และติดตั้ง UnmanagedExport ขึ้น error แบบนี้ ผิดปกติใหมครับ

Severity   Code   Description   Project   File   Line   Suppression State
Warning   NU1701   Package 'UnmanagedExports 1.2.7' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.   ClassLibrary7   C:\Users\ADMIN\source\repos\ClassLibrary7\ClassLibrary7\ClassLibrary7.csproj   1   


*

admin

  • 80,415
Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #7 เมื่อ: 15, มีนาคม 2020, 08:15:27 PM »
ผมนี่มาแอบส่ง เทพ ภาษา C เทพ เทพ เขียน EA เขาคุยกัน
g*/- g*/-
"เอาชนะใจตัวเองให้ได้ ก่อนที่จะไปเอาชนะตลาด"

Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #8 เมื่อ: 16, มีนาคม 2020, 12:11:11 PM »
อ้างจาก: forcebewithyou ที่ 15, มีนาคม  2020, 06:46:36 PM


สอบถามอีกหน่อยครับ ผมจะลองทำ project ใหม่ เลือกเป็น libraly class แบบใหนครับ .Net standard .Netframework, .Netcore หรือตัวใหนครับท่าน


และติดตั้ง UnmanagedExport ขึ้น error แบบนี้ ผิดปกติใหมครับ

Severity   Code   Description   Project   File   Line   Suppression State
Warning   NU1701   Package 'UnmanagedExports 1.2.7' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.   ClassLibrary7   C:\Users\ADMIN\source\repos\ClassLibrary7\ClassLibrary7\ClassLibrary7.csproj   1   



เลือกเป็น Class Library (.NET Framework) ครับ



เลือก .NET Framework 4.7.2


Re: มีใครทำ DLL จาก C# ได้บ้างครับ
« ตอบกลับ #9 เมื่อ: 16, มีนาคม 2020, 12:30:09 PM »
อ้างจาก: เข่ง ที่ 16, มีนาคม  2020, 12:11:11 PM
อ้างจาก: forcebewithyou ที่ 15, มีนาคม  2020, 06:46:36 PM


สอบถามอีกหน่อยครับ ผมจะลองทำ project ใหม่ เลือกเป็น libraly class แบบใหนครับ .Net standard .Netframework, .Netcore หรือตัวใหนครับท่าน


และติดตั้ง UnmanagedExport ขึ้น error แบบนี้ ผิดปกติใหมครับ

Severity   Code   Description   Project   File   Line   Suppression State
Warning   NU1701   Package 'UnmanagedExports 1.2.7' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' instead of the project target framework '.NETCoreApp,Version=v3.1'. This package may not be fully compatible with your project.   ClassLibrary7   C:\Users\ADMIN\source\repos\ClassLibrary7\ClassLibrary7\ClassLibrary7.csproj   1   



เลือกเป็น Class Library (.NET Framework) ครับ



เลือก .NET Framework 4.7.2



ขอบคุณมากครับท่านเข่ง