IJCAD2018 でC#でのプログラミングにおけるaccore.dllとの互換性について – .net ijcad

質問:


IJCAD2018を使用してC#で開発を行っております。
AutoCADの場合、
[DllImport(“accore.dll”, CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
private static extern int acedEntSel(String str, out AdsName objName, double[] result);
とすることでacadEntSelを呼び出すことができるようになり、
これを使用することでユーザーが選択したオブジェクトのIDや座標を取得することが
できるのですが、これはIJCAD2018では互換性のあるDLLなどは存在しないのでしょうか?

質問者: SN IJCAD

htb

IJCADの.NETからacadEntSel関数を使用するには、

[DllImport("gced.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl,EntryPoint = "gcedEntSel")]
public static extern int acedEntSel(String str, out ads_name entres, double[] ptres);

とすることで、関数を呼び出すことが出来ると思います。

出典

Related Posts:

文字列の部分置換 – c# .net
質問: 文字列の部分置換を行いたいと思うのですが 簡単な方法を教えてください。 例えば String data = "かきくけこさしくせそあいくえお"; 最後の"く"を "う" に置換したい。 次は、"く" を "す" に置換したい。 例では、規則性があるように見えますが、実際の データは、置換する文字列の前後は、規則性がありませんので 正規表現は、使用できません。 以上 質問者: Devai kaorun 通常、このような条件だとsayuriさんの例のように正規表現で処理するのが常道かと思います。 が、どうしても、System.Text.RegularExpressions名前空間は親の仇で使えない等の理由があるのであれば、お手軽なメソッドは用意されていないと思われるので、String.LastIndexOf()と.Substring()を使ってちまちま切張りするのがおそらく一番ストレートなアプローチになるでしょう。 static void Main(string args) { var source = "かきくけこさしくせそあいくえお"; ...
同一メソッドをtask処理で複数走らせたい時 – c# .net マルチスレッド
質問: お世話になります。 あるクラスのメソッドを複数taskで走らせたい時は、一度クラスをnewしたインスタンスを使い、 複数taskを走らせればよいのでしょうか? それとも、taskごとにクラスをnewしてメソッドを使うべきでしょうか? クラスの持つ変数の使い方や都合は一切考慮しなくてよい、単純な話になります。 よろしくお願いします。 質問者: petton 何も考慮しなくて良いなら、1つのインスタンスで複数のタスクを走らせるのが単純です。 そのようなタスクだけで、実際的なアプリケーションが出来るか疑問は残ります。(まぁ、それも考慮する必要がないのでしょうが) クラスの持つ変数の使い方 通常はこの点が一番重要な判断ポイントで、MSDNなどのリファレンスで「インスタンスメンバー」が「スレッドセーフ」であるかどうかを確認して1インスタンスを使いまわすかどうかを決めます。 出典
配列内を正規表現で検索したい – c# .net 正規表現
質問: 記述するべき内容が不足していたら申し訳ありません。 やりたいこと 配列内を正規表現を用いて検索し、「マッチした文字列」の中で「一番要素数が大きい文字列」を取得したいです。 現状 「文字列」(=inData、可変)と「区切文字」(=delimiter、可変、正規表現を使う場合あり)を投げると、 ・Regex.splitを用いて区切る ・「区切前方文字(=front)」を代入 ・「マッチした区切文字(delimiter)」を代入 ・「区切後方文字(=behind)」を代入 ・区切れたら(inData内からdelimiterがマッチする箇所が1つでも存在したら)true/区切れなかったらfalseを返す 上記のことを行う関数(GetSplitData)を作りました。 「区切文字にマッチする箇所が1箇所のみだった」時の動きの例は以下の通りです。 これは想定通り動作しています。 例:GetSplitData("AAA BBB", "s+", "", "")// inData, delimiter, front, behind 戻り値→inData = "AAA BBB" front = "AAA" ...
ASP.NETフォームアプリケーションを使いつつAPIを作る方法 – c# .net asp.net
質問: 事情があり、MVC5ではなくASP.NETフォームアプリケーションで開発しています。 ですが、このプロジェクトの中でフォームページを持たないAPIを作りたいです。 方法はありますか? 質問者: user13893 通常ASP.NET Web FormsでのWebサービス作成にはASMX Webサービスか、もしくはジェネリックハンドラー(ashxファイル)を使用します。またWCFをホストすることもできます。 Web Formsやお使いのVisual Studioのバージョンにもよるのですが、API部分にだけMVCやWeb APIを採用する事もNGでしょうか? 例えばVS2013以降であれば Web Forms / Web API /MVC を一つのプロジェクトで共存させることは容易ですので、『画面がある機能はWeb Formsで、API部分はWeb ...
SendMessageのWM_GETTEXTとWM_GETTEXTLENGTHで大幅に文字数が異なる – c# windows .net
質問: while(true){ //<=実際には何かしらの条件 /*何らかの処理、ただし、hwndのテキストはコード側ではいじらない*/ //hwnd<-対象のハンドル var sb = new StruingBuilder(); var length = ...
ILMergeで出てしまうエラーの回避 – c# .net
質問: お世話になります。 .Netにて、生成されたexeと関連するdllを結合して、単体で起動するexeに 変換するILMergeですが、なかなかうまく変換できません。それが、 必ず失敗するのではなく、成功するときもあれば、失敗するときもあるのです。 一度成功したかと思うと、それ以降が失敗してしまいます。 下記が使用しているコマンドです。 "C:Program Files (x86)MicrosoftILMergeILMerge.exe" /targetplatform:v4  /out:"C:..A.exe" "C:...Z.exe" "C:...B.dll" その結果、下記のようなエラーが出ます。 An exception occurred during merging: ILMerge.Merge: There were errors reported in B's metadata. The pdb associated with C:...B.dll is out of ...
asp.netのグリッドビューで入力させたテキストにヒットした行だけを表示したい – c# .net asp.net
質問: asp.netのグリッドビューでテキストボックスに入力させた内容にヒットした行だけを表示したいです。 その際にできれば画面を更新したくないです。 どのようなアプローチが可能でしょうか? 質問者: noside 出典
.Net構成のアプリケーションから投げたクエリが不定期にタイムアウトする(SQLServer) – windows .net sql
質問: .Net 4.5(VB.net)で構築したバッチアプリケーション上において、 Sqlcommandから発行したSQLが不定期にタイムアウトします。 処理件数やサーバー負荷の状況によらず発生する為原因が掴めず…。 参考までに既に判明している内容をを以下に記述します。 タイムアウトが発生するSQLコマンドは複数存在するが、内容は多様で一貫性が無い。 対象テーブル等に関係なく落ちる。 高負荷の処理が落ちやすい傾向があるようだが即時終了する場合の方が多い。 ※タイムアウトしない場合はどのコマンドも即時終了する。 アプリケーションの稼働最初期はタイムアウトしなかったが、 データレコードの増加に比例して発生頻度が高くなるわけではない 複数ある対象テーブルは毎日2,000~6,000件のレコードが追加される。統計情報は1日1回更新 SqlcommandのCommandTimeout、接続文字列のConnectionTimeoutはそれぞれ120秒を設定 基本的には再実行すれば処理が通る(ただし、稀に失敗する場合もある) 処理を妨げるようなデッドロックは発生していない(Profilerで確認済み) SSMSから同クエリを実行した場合は必ず成功する。SET ARITHABORT OFFを付けた場合も同様 当該アプリケーションとDBは同一サーバーで稼働しているのでネットワーク影響は考えにくい 本番環境のみで発生。本番DBをリストアした検証環境では再現しない 本番・検証環境は諸事情あって内容に差異が存在(この辺りが怪しいが、関連性が掴めず…) ・本番  Windows Server 2012 Standard(64-bit)  Microsoft SQL Server 2012 Standard (64-bit)   ・開発  Windows Server 2012 R2 Standard(64-bit)  Microsoft SQL Server 2012 Standard(32-bit)  ※どちらもVMWare上で稼働。設定上のメモリ、CPUは同等。(4GB, 3.40GHz) エラーメッセージは毎回以下の通り。 エラー内容: Timeout に達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。 内部エラー: 待ち操作がタイムアウトになりました。 2016/03/14 追記1 環境について質問頂いたため、いくつか知見を追加します。 保守部門にハードウェア障害が発生していないことは確認済み。HDDも支障なし 再起動は基本しない環境。 タイムアウト時にメンテナンスの意味合いで実施したこともあるものの、状況改善には至らず Windows Updateの起動と相関が無いことは確認済み 本番環境での作業有無に依らず発生する(発生時間帯はオペレーター不在の為、間違いない) イベントログ等で発生時刻に走る別処理を確認したが、関連性のある処理は存在せず 当該TBLの断片化率に依らず発生する 2016/03/14 ...
C#4.5のフォームの継承について – c# windows .net
質問: C#の継承について質問です 継承元のフォームで作成した部品が、派生先のフォームでロックがかかってしまい困っています Form1が継承元としてForm2を派生させました Form1にはbutton1、Layoutpanelと、その更にLayoutpanel1の上にpanel1を貼り付けています button1のModifiersプロパティをpublicにしたところ、 ボタンは派生先で動作変更が出来ました しかし、panleのModifiersプロパティをpublicにしても派生先ではロックがかかっており、 他のパーツの配置が出来ません また、panelを載せているLayoutpanelもpublicにしたのですがやはりロックがかかりっぱなしでした 試しに、フォーム上にパネルを直接貼付、Modifiersプロパティをpublicとしたところ、派生先でもパネル上にパーツを配置できたので Layoutpanel→panelとするときだけ、派生先でロックがかかってしまうようですが デザインの関係上Layoutpanelを外すのは難しいです Layoutpanel→panelとしたときに、派生先でpanel上にパーツを配置するのには 他に、どのような操作が必要でしょう(Layoutpanelはいじれないようにしたいのですが出来ないようならLayoutpanelの操作は可能になってしまってもいいのですが・・・) 質問者: 次郎三郎 pgrho FlowLayoutPanelその他の.NET Framework 2.0で追加されたコントロールはビジュアル継承をサポートしないと明言されています。対応するデザイナー等も非公開クラスですので変更は難しいと思います。 出典
C#で作成したプログラム内部からVC++のDLLをWindows10だと呼び出せなくなる – c# visual-studio .net
質問: Windows7で作成したプログラムがWindows10では動作しなくなりました(Windows7では動作します) C#からVC++(どちらも32bitでビルド)で作成されたDLLをDllImportで呼び出していたのですが エラーを調べていたらDLL 'XXX.dll' を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E) というエラーになりました 単純に public extern static uint FooFoo(); として呼び出しているだけなのですが・・・・ C#のexeとVC++のdllは同じフォルダに配置しています c#のVisual Studioは2013UPDATE5(.NETのターゲットバージョン4.5としてビルド) VC++のVisual Studioは2008SP1 ランタイムが足りないのかと思い、Windows10にVC++2008SP1のランタイムも手動で入れてみたのですが同じエラーメッセージのままでした エラーメッセージは単純にxxx.dllを見つけられないだけのようですが 他にはどのように原因が考えられるでしょうか 質問者: 次郎三郎 hmm C++で作成されたDLLが、依存しているDLLがない場合にも同様のエラーとなります。 Dependency Walkerで必要なDLLを調べてみてください。 よくあるのがVCruntimeのいれ忘れ、x86x64のいれ間違いです。 ...
Buffer.BlockCopyについて – c# .net
質問: int CD_SIZE = 2; int USE_SIZE = 3; int COUNT_SIZE ...
CookieContainer の仕様について – c# .net
質問: CookieContainerへCookieを追加する際、セパレーター(セミコロンやカンマ)のエスケープはどうすれば良いのでしょうか? 代替案としてパーセントエンコーディングする方法や、スペースに置き換える方法が見つかりましたが、本来の仕様としてセパレーターを値に設定する方法が知りたいので質問させていただきました。 以上、よろしくお願いします。 質問者: PPAPi あくまでSystem.Net.Cookieクラスの仕様としてですが、new Cookie("name", ""abc,def"")のように値の両端に二重引用符を追加すれば制御文字を含めることが出来ます。 これはHTTPの仕様としてはRFC 2965に規定されている動作ですが、より新しいRFC 6265では引用しても制御文字を含めることはできません。ですので結局どのようにエスケープされるのかは対象サーバーの挙動を確認する必要があると思います。 出典
XMLスキーマからのC#クラスの自動生成 – c# .net xml
質問: CAPECのXMLデータを読み込むツールを作りたいのですが、XMLの知識が乏しいのと型数的に面倒なので、Xml Schemas/DataTypesサポートユーティリティを使ってスキーマからC#のクラスを自動生成しようとしています。 しかし、データ型http://cybox.mitre.org/cybox-2:ObservablesTypeが見つからないというエラーが出てクラスが生成されません。 D:tempcapec_v2.8>xsd ap_schema_v2.7.1.xsd /classes Microsoft (R) Xml Schemas/DataTypes サポート ユーティリティ Copyright (C) Microsoft ...
Webアプリケーションのブラウザ表示とC#WindowsフォームのWebBrowserでの表示の判別 – javascript c# .net
質問: 現在下記2つのアプリケーションを作成しています。 1.Webアプリケーション 2.Windowsフォームアプリケーション 2のフォームアプリケーションは1のWebアプリケーションをForm上で表示するためのアプリです(.netのWebBrowserで1を表示しています)。 1のWebアプリケーションは2のフォームでの表示と、通常のブラウザ(IEやChrome)での表示も行います。 そこで、一部機能を2のフォームアプリケーションからのみ制御可能にしたいのですが、可能でしょうか? 例)リンククリック時に2のアプリ上からだと遷移するが、 IEやChromeからクリックした場合遷移せずにアラートを表示する等 宜しくお願い致します。 質問者: TSaito sayuri あらゆる通信は模倣することが可能なため、ブラウザーを判別し「完全に切り分け」ることは不可能です。何らかの妥協が必要です。 エラー抑止程度が目的で厳密性を求める理由がよくわかりませんでした。 WebBrowserコントロールのUser-Agentに独自のキーワードを組み込んでおき、Webサーバー側は独自のキーワードがあればリンクを開き、なければ警告する、他のブラウザーがUser-Agentを模倣した場合は誤判定するがその点は気にしない、程度の実装が浮かびました。もちろん誤判定があるため完全ではありません。 出典
_Layout.cshtmlの状態を変化させたい – javascript c# .net
質問: _Layout.cshtmlにリンクを作成しいます。 下図の場合、ホーム、詳細、連絡先それぞれをクリックしたとき、下図赤枠部分を現在表示しているページの文字を太字、サイズ変更等したいと考えています。 html.ActionLink時にclassの追加等試したのですがうまく反映されません。 ご教示願います。 質問者: TSaito pgrho 通常のリンクで別のページに移動した場合、すべてのDOM要素が再読み込みされますので遷移直前にJavaScriptで設定したスタイルは反映されません。 ですので_Layout.cshtmlで現在表示中のアクションを判定して@classの値を制御してください。 コントローラー名およびアクション名はViewContext.RouteData.ValuesやViewContext.RouteData.Valuesで参照できますし、コントローラーから明示的にモデルに指定すれば確実に判定できます。 出典

You Might Also Like

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です