質問するログイン新規登録

質問編集履歴

5

訂正

2019/12/19 02:16

投稿

ParaParaDance
ParaParaDance

スコア56

title CHANGED
File without changes
body CHANGED
@@ -3,12 +3,13 @@
3
3
  これをC#のText Boxに表示するため、以下のようにし、Timerを掛けて読んできてます。
4
4
 
5
5
  【C#でのCode内容】
6
+ ```ここに言語を入力
6
7
  [DllImport("API_ver1.0.0.dll", CallingConvention = CallingConvention.StdCall)]
7
8
  public static extern int GetData();
8
-
9
9
  tBox_Angle.Text = Convert.ToString(DLLimpo.GetData());
10
-
10
+ ```
11
11
  【DLL側のメソッド】
12
+ ```ここに言語を入力
12
13
  extern "C" DllExport int __stdcall GetData();
13
14
 
14
15
  int __stdcall GetData() {
@@ -18,6 +19,8 @@
18
19
  buff = MSGbuff.Parameters[0];
19
20
  return buff; } }
20
21
 
22
+ ```
23
+
21
24
  しかし、正の値は正しく表示されるが、負の値が正の値として表示されてしまいます。
22
25
  例えば、-1474であれば、64061と表示される。
23
26
 

4

訂正

2019/12/19 02:16

投稿

ParaParaDance
ParaParaDance

スコア56

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,7 @@
10
10
 
11
11
  【DLL側のメソッド】
12
12
  extern "C" DllExport int __stdcall GetData();
13
+
13
14
  int __stdcall GetData() {
14
15
  static int buff;
15
16
  while (1) {

3

訂正

2019/12/19 01:59

投稿

ParaParaDance
ParaParaDance

スコア56

title CHANGED
File without changes
body CHANGED
@@ -3,7 +3,7 @@
3
3
  これをC#のText Boxに表示するため、以下のようにし、Timerを掛けて読んできてます。
4
4
 
5
5
  【C#でのCode内容】
6
- [DllImport("IXXAT_API_ver1.0.0.dll", CallingConvention = CallingConvention.StdCall)]
6
+ [DllImport("API_ver1.0.0.dll", CallingConvention = CallingConvention.StdCall)]
7
7
  public static extern int GetData();
8
8
 
9
9
  tBox_Angle.Text = Convert.ToString(DLLimpo.GetData());

2

内容追記

2019/12/19 01:57

投稿

ParaParaDance
ParaParaDance

スコア56

title CHANGED
File without changes
body CHANGED
@@ -2,9 +2,21 @@
2
2
  ※返される値は、Intではあるものの、中身は16bitの値です。
3
3
  これをC#のText Boxに表示するため、以下のようにし、Timerを掛けて読んできてます。
4
4
 
5
- [Code内容]
5
+ 【C#でのCode内容
6
+ [DllImport("IXXAT_API_ver1.0.0.dll", CallingConvention = CallingConvention.StdCall)]
7
+ public static extern int GetData();
8
+
6
9
  tBox_Angle.Text = Convert.ToString(DLLimpo.GetData());
7
10
 
11
+ 【DLL側のメソッド】
12
+ extern "C" DllExport int __stdcall GetData();
13
+ int __stdcall GetData() {
14
+ static int buff;
15
+ while (1) {
16
+ oApi.Receive(0, &MSGbuff);
17
+ buff = MSGbuff.Parameters[0];
18
+ return buff; } }
19
+
8
20
  しかし、正の値は正しく表示されるが、負の値が正の値として表示されてしまいます。
9
21
  例えば、-1474であれば、64061と表示される。
10
22
 

1

内容補足

2019/12/19 01:55

投稿

ParaParaDance
ParaParaDance

スコア56

title CHANGED
File without changes
body CHANGED
@@ -8,4 +8,4 @@
8
8
  しかし、正の値は正しく表示されるが、負の値が正の値として表示されてしまいます。
9
9
  例えば、-1474であれば、64061と表示される。
10
10
 
11
- アドバイス頂けますでしょうか。
11
+ 負の値がちゃんと表示されるようにるためにはどうすれば良いでしょうか。