System.typeloadexception при Marshal char[] (string) х86, х64

Использую Visual Studio 2017. Пишу на C#. Платформа х64. При маршалинге структуры, которая содержит char[] (или string) генерируется исключение System.typeloadexception. Если сменить платформу на х86, то проблема уйдет. Я понимаю, что это как-то связано с тем, что размер указателя на участок в памяти меняется с 4 байт на 8 байт. Кто-нибудь может поподробнее объяснить, почему генерируется исключение? И как это связано с х86 и х64?

[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Ansi)]     public struct DEVMODE     {         [FieldOffset(0)]         public Int32 field1;         [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]         [FieldOffset(4)]         public char[]/*string*/ field2;     }      static void Main(string[] args)     {         DEVMODE mode = new DEVMODE();     } 

Если изменить FieldOffset(4) на FieldOffset(8) то проблема уйдет.

[StructLayout(LayoutKind.Explicit, CharSet = CharSet.Ansi)]     public struct DEVMODE     {         [FieldOffset(0)]         public Int32 field1;         [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]         [FieldOffset(8)]         public char[]/*string*/ field2;     }      static void Main(string[] args)     {         DEVMODE mode = new DEVMODE();     } 

Массивы на х86 нужно выравнивать по 4 байта, а на x64 по 8 байт?

Как при повторном нажатии на кнопку сбрасывать атрибут?

У меня есть функция, которая делает текст подчеркнутым при помощи attrString

    func makeUnderline(for textView: UITextView, underlineStyle: NSUnderlineStyle) {     var selectedRange = textView.selectedRange     let attributedText = textView.attributedText     // Create attribute     let underlineAttribute: [NSAttributedString.Key : Any] = [         .underlineStyle: underlineStyle.rawValue     ]     if selectedRange.length == 0 {         selectedRange = NSRange(location: 0, length: (attributedText?.length)!)     }     //Change type from NSAttributedString to NSMutableAttributedString and add attributes     let newAttributedText = NSMutableAttributedString(attributedString: attributedText!)     newAttributedText.addAttributes(underlineAttribute, range: selectedRange)      textView.attributedText = newAttributedText } 

Как мне сделать так, чтобы атрибуты сбрасывались при повторном нажатии?

Восстановить удаленные записи (soft delete) при клике на кнопку Laravel

При клике на кнопку восстановления переходит на страницу как пример post/2/restore и пишет not found web.php

Route::post('/post/{post}/restore', 'PostController@restore'); 

view

@section('content') <div class="container-fluid back">     <div class="row justify-content-center">         @foreach($  posts as $  post)             <div class="col-md-6 col-12">                 <div class="row">                     <div class="col-6">                         <a href="/post/{{$  post->id}}">  <img src="/storage/{{ $  post->image }}" class="w-100"> </a>                     </div>                     <div class="col-6">                         <p>{{$  post->title}}</p>                         <p>{{$  post->created_at}}</p>                         <p>{{$  post->deleted_at}}</p>                         <form action="/post/{{$  post->id}}/restore" method="post">                             @csrf                             <button type="button" type="submit" name="button" class="btn btn-primary"> Восстановить</button>                             <a href="" class='btn btn-danger'>Удалить навсегда</a>                         </form>                     </div>                 </div>             </div>         @endforeach     </div> </div> @endsection 

PostController.php

    public function restore(Post $  post)     {         $  post = Post::withTrashed()->find(post)->restore();         return redirect('/profile/' . auth()->user()->id);     } 

Подскажите пожалуйста, как вставить утилиту strip в Makefile при сборке бинарника?

как сделать так, чтобы команда strip -s была уже в самом makefile. Как нужно прописать ее? никак не найду теории по этой теме

DBComboBox при вставке нового значения, не отображает данные

Доброе время суток форумчане,
Какой-то глюк произошел, в одной программе работает, в другой – нет.

В IBDataSet.AfterInsert заполняю 3 DBComboBox (dbcbCountryCL, dbcbNameTest, dbcbYearBegin)

ExecQuery(C_sel_full_ComboBoxEquipment, 0, Select_rec, nil);//заполнение IBQuery (DM.ibqEmpty) FMain.dbcbCountryCL.Clear; FMain.dbcbNameTest.Clear; FMain.dbcbYearBegin.Clear; DM.ibqEmpty.First; while not DM.ibqEmpty.Eof do begin   if DM.ibqEmpty.FieldByName('FILED_NAME').AsString = 'PRODUCER' then FMain.dbcbCountryCreate.Items.Add(DM.ibqEmpty.FieldByName('PRODUCER').AsString);   if DM.ibqEmpty.FieldByName('FILED_NAME').AsString = 'NAME_TEST' then     FMain.dbcbNameTest.Items.Add(DM.ibqEmpty.FieldByName('PRODUCER').AsString);   if DM.ibqEmpty.FieldByName('FILED_NAME').AsString = 'YEAR_BEGIN' then     FMain.dbcbYearBegin.Items.Add(DM.ibqEmpty.FieldByName('PRODUCER').AsString);   DM.ibqEmpty.Next;   end; end 

все нормально.
Но при вставке нового (т.е. которого нету в их списках) значения в эти DBComboBox’ы, оно в нем перестает отображаться, хотя в БД это значение есть и DBGrid его отображает.
При нажатии Refresh на навигаторе, также это значение появляется в DBComboBox, но при переходе с записи на запись, оно опять пропадает только из DBComboBox.
Конечно если закоментировать, заполнение элементов DBComboBox, все нормально отрабатывается.

Где может быть ошибка?
Заранее спасибо за ответ.

Задать корневой каталог при подключении по ssh

При подключении к сайту по ssh мы попадаем в корневой каталог. Где и что прописать чтоб при подключении ssh user@ip.host -p 22 я попадал не в /home/user/ , а в /home/user/var/www/ ?

Python | Ошибка при вводе в input

Не понимаю из за чего вылетает ошибка …

пробовала и так

ask = str(input("Сохранить изменения? [Y/n]")) print(ask) 

и так

 ask = input("Сохранить изменения? [Y/n]")     print(ask) 

Ошибка:

Traceback (most recent call last):   File "file.py", line 5, in <module>     ask = input("Сохранить изменения? [Y/n]")   File "<string>", line 1, in <module> NameError: name 'test' is not defined 

Ошибка при вызове снипета 2 раз в шаблоне MODX EVO

Написал снипет для выбора из базы уникальных id ресурсов для вызова в DosLister для списка только необходимых параметров фильтра товаров на странице каталога (например, производители или цвета). Уникальность применяется для того, так как товары с разными размерам и цветом имеют свой ресурс. Для вызова в каталоге товаров использую hidemenu=0 чтоб не плодить одинаковые товары в каталоге.

В общем вот код снипета и вызов списка параметров:

<?php  $  id = isset($  id) ? $  id : '';	 // функция извлечение уникалных значений из массива	 function unique_multidim_array($  array, $  key) {      $  temp_array = array();      $  i = 0;      $  key_array = array();           foreach($  array as $  val) {          if (!in_array($  val[$  key], $  key_array)) {              $  key_array[$  i] = $  val[$  key];              $  temp_array[$  i] = $  val;          }          $  i++;      }      return $  temp_array;  } 	 // получаем первый массив	 $  sql="SELECT id, pagetitle FROM ".$  modx->getFullTableName('site_content')." WHERE parent=".$  id." AND published=1 AND hidemenu=0 ORDER BY pagetitle ASC"; $  q=$  modx->db->query($  sql); $  content = $  modx->db->makeArray($  q);  // получаем второй массив $  sql2="SELECT contentid, value          FROM ".$  modx->getFullTableName('site_tmplvar_contentvalues')."  	   WHERE tmplvarid=80"; $  q2=$  modx->db->query($  sql2); $  tv = $  modx->db->makeArray($  q2);   // объединяем первый и второй массив foreach($  content as $  key => $  value){     foreach($  tv as $  value2){         if($  value['id'] === $  value2['contentid']){             $  content[$  key]['value'] = $  value2['value'];         }                    } }  // получаем уникальный массив $  details = unique_multidim_array($  content,'value');    // вывод результатов из массива foreach($  details as $  row) {   echo $  row['id'].',';	 }  ?>

Сам вызов значений параметра фильтра:

[[DocLister?      &documents=`[[uniqueIdcolor? &id=`[*id*]`]]`	     &idType=`documents`     &tvList=`cvet`     &tvPrefix=``      &id=`filterColors`     &tpl=`filterColorsTpl`  ]]  // шаблон вызова  <a data-target="[+cvet+]" data-type="color" class="selectable detailed"><span class="color-cart color"><img src="[[ColorSelect? &docid=`[+id+]`]]" class="img-color" alt=""><span class="size">[+cvet+]</span></span></a>

Все работает, но при вызове снипета второй раз в шаблоне, ошибка 500 в браузере. В общем не ясно, такая же ошибка у меня появляется при синтетической ошибке кода в снипете.

Почему снипет нельзя вызвать второй раз… или даже если делаешь копию, а заменяешь только tv параметр для сбора?